[GAP Forum] How do I construct the rank 2 free metabelian group of exponent n?

Hulpke,Alexander Alexander.Hulpke at colostate.edu
Tue Jan 31 02:48:26 GMT 2017


Dear GAP-Forum, Dear Will,

On Jan 30, 2017, at 5:30 PM, Will Chen <oxeimon at gmail.com<mailto:oxeimon at gmail.com>> wrote:

Let [image: F] be the free group in two generators [image: x,y], and [image:
n] an integer. I would like to create the group [image: F/F''F^n]. This is
a finitely generated solvable group of exponent [image: n], and hence is
finite.

Unfortunately, the subgroups [image: F'',F^n] are infinitely generated.
Creating [image: F'] via "DerivedSubgroup(F)" seems to work, since [image:
F] is finitely generated, but creating [image: F''] by calling
"DerivedSubgroup" doesn't seem to halt.

Also, I don't know of a command that can create [image: F^n].

Is it possible to construct the finite group [image: F/F''F^n] in GAP?

I would go by suitable quotients. First look at the largest abelian, exponent n quotient of the group, that must be C_n^2. Then take the kernel, and take again the largest abelian exponent -n quotient.

For example, for n=6:

gap> F:=FreeGroup(2);
<free group on the generators [ f1, f2 ]>
gap> a1:=AbelianGroup(IsPermGroup,[6,6]);
Group([ (1,2,3,4,5,6), (7,8,9,10,11,12) ])
gap> q1:=GroupHomomorphismByImages(F,a1,GeneratorsOfGroup(F),
> GeneratorsOfGroup(a1));
[ f1, f2 ] -> [ (1,2,3,4,5,6), (7,8,9,10,11,12) ]
gap> k:=Kernel(q1);
Group(<free, no generators known>)
gap> Length(GeneratorsOfGroup(k));
37

To avoid constructing a regular representation of the factor of order 6^37 we take individual quotients of order 6, take their kernels and then intersect (Because of the iterated maps we use permutation representations — this is not implemented for other representations)

gap> ims:=List([1..37],x->ListWithIdenticalEntries(37,One(cyc)));;
gap> for i in [1..37] do ims[i][i]:=cyc.1;od;
gap> qs:=List(ims,x->GroupHomomorphismByImages(k,cyc,
> GeneratorsOfGroup(k),x));;
gap> ks:=List(qs,Kernel);;
gap> kk:=Intersection(ks);
Group(<free, no generators known>)
gap> Index(F,kk)/Index(F,k);
61886548790943213277031694336
gap> 6^37;
61886548790943213277031694336

So we have the correct kernel. Now take the quotient map that is used to store it and verify that it does not represent an even larger quotient:

gap> q:=DefiningQuotientHomomorphism(kk);
[ f1, f2 ] ->
[ (1,2,4,8,14,22)(3,6,11,18,27,37,46,5,9,15,23,32)(7,10,16,24,33,42)(12,19,
    28,38,47,55)(13,17,25,34,43,52)(20,29,39,48,56,62)(21,26,35,44,53,60)(30,
[…]
gap> Size(Image(q));
2227915756473955677973140996096
gap> Index(F,kk);
2227915756473955677973140996096

The Image, H is a finite group of which we want a quotient:

gap> H:=Image(q);
<permutation group of size 2227915756473955677973140996096 with 2 generators>

But H has elements of higher order. Factor out 6-th powers (somewhat trial-and error, we verify below that the quotient has exponent 6):

gap> s:=TrivialSubgroup(H);
Group(())
gap> for i in [1..100] do s:=ClosureGroup(s,Random(H)^6);od;
gap> s:=NormalClosure(H,s);;
gap> Index(H,s);
544195584

gap> gq:=NaturalHomomorphismByNormalSubgroup(H,s);

This is the quotient you want:

gap> G:=Range(gq);
<pc group of size 544195584 with 22 generators>

gap> DerivedSeries(G);
[ <pc group of size 544195584 with 22 generators>,
  <pc group of size 15116544 with 18 generators>, Group([  ]) ]
gap> Exponent(G);
6

By tracing through the homomorphisms from F properly, you can remember how it is an image of F.

All the best,

   Alexander Hulpke

-- Colorado State University, Department of Mathematics,
Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA
email: hulpke at colostate.edu<mailto:hulpke at colostate.edu>, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke




More information about the Forum mailing list