[GAP Forum] Why is following error coming
Steve Linton
sal at mcs.st-and.ac.uk
Thu Oct 1 12:08:23 BST 2015
Dear GAP Forum, Dear Vipul,
When you give GAP a finite presentation for a group it does not immediately know that the group is finite let alone a p-group and so it will not always choose the best methods for computing in the group. In this case, it ends up very inefficiently trying to compute the index of one subgroup in another using presentations and runs out of memory.
You can make things better by first asking GAP to compute the size of the whole group.
Once that completes GAP knows that the group is finite and chooses better algorithms. So
gap> g:=f/[f.1^7,f.2^7,f.3^(7^3),f.1^-1*f.2^-1*f.1*f.2*(f.3^-1)^49,f.1^-1*f.3^-1*f.1*f.3,f.$
<fp group on the generators [ f1, f2, f3 ]>
gap> Size(g);
16807
gap> ConjugacyClassesMaximalSubgroups(g);;
completes for me in a few seconds.
This is still not the best way to work in this group g though.
In general if you know that a group is finite soluble, you are best representing it as what is called a “pc-group”. You can find lots of information about this representation in (e.g.) (Rick, Holt & O’Brien’s book).
In GAP terms this is :
gap> phi := IsomorphismPcGroup(g);
[ f1, f2, f3 ] -> [ f1, f2, f3 ]
gap> g2 := ImagesSource(phi);
Group([ f1, f2, f3 ])
gap> ConjugacyClassesMaximalSubgroups(g2);;
The first line takes a few seconds, but after that computations in g2 are very fast (e.g. the maximal subgroups computation takes 12 ms).
In fact in this case, since your presentation is basically in power-commutator form anyway, you can use
g2 := RefinedPcGroup(PcGroupFpGroup(g));
to avoid the relatively slow computation of phi.
Steve
> On 1 Oct 2015, at 11:22, Vipul Kakkar <vplkakkar at gmail.com> wrote:
>
> Dear Members
>
> I am trying following calculation in GAP
> f:=FreeGroup(3);
> g:=f/[f.1^7,f.2^7,f.3^(7^3),f.1^-1*f.2^-1*f.1*f.2*(f.3^-1)^49,f.1^-1*f.3^-1*f.1*f.3,f.2^-1*f.3^-1*f.2*f.3];
>
> The order of g is 7^5. I tried to find the maximal subgroups or all
> Subgroups of g, but I get following error
>
> Error, the coset enumeration has defined more than 16384000 cosets
> called from
> TCENUM.CosetTableFromGensAndRels( fgens, grels, fsgens ) called from
> CosetTableFromGensAndRels( fgens, grels, fsgens ) called from
> TryCosetTableInWholeGroup( H ) called from
> CosetTableInWholeGroup( H ) called from
> IndexInWholeGroup( H ) called from
> ... at line 8 of *stdin*
> type 'return;' if you want to continue with a new limit of 32768000 cosets,
> type 'quit;' if you want to quit the coset enumeration,
> type 'maxlimit := 0; return;' in order to continue without a limit
>
> Why is it coming?
> How can I get rid of this situation and how to find them?
>
>
> with regards
>
> Vipul Kakkar
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
More information about the Forum
mailing list