Dear Forum,

Nick Gill asked:

> I'm doing some coding where I process a long list of group presentations. For 
> each presentation I'd like to calculate the order.
> 
> My problem is that I'm not 100% sure if all of the presentations yield finite 
> groups. I'd like to ask GAP to first check to see if the group has order less 
> than a 1000 (say) and, if not, then skip this presentation and move onto the 
> next one.

Derek Holt already explained very nicely how one cannot expect a general answer 
of a lower bound, but can only hope coset enumeration to finish.

So this is just a pointer how to do such enumeration attempts successfully in 
GAP without too many contortions. It uses an utility function that is part of 
the mechanism used by `Size`: (`Size` will try to find a cyclic subgroup of 
finite index and rewrite the presentation to this subgroup, then calculating 
the order of the subgroup.)

On your finitely presented group G call

FinIndexCyclicSubgroupGenerator(G,m);

where m is the maximal number of cosets you want to allow GAP to define. Unless 
your presentations are really bad, or your computer is ancient, setting m in 
the magnitude 10^5-10^7 should be no problem, but your mileage may vary. 

If the call returns `fail`, enumerations did not finish (and `Size` is 
extremely unlikely to finish with this number of cosets permitted).

Otherwise the function returns a list of length 2, whose first entry is an 
element of G. A coset enumeration by the cyclic subgroup generated by this 
element was successful (and thus it is basically guaranteed that a subsequent 
call to `Size` will also finish if you allow for the same number of cosets.

All the best,

 Alexander Hulpke



_______________________________________________
Forum mailing list
Forum@gap-system.org
https://mail.gap-system.org/mailman/listinfo/forum

Reply via email to