Our method to determine polycyclic presentations for nilpotent quotients of L-presented groups generalizes Nickel's nilpotent quotient algorithm for finitely presented groups. We refer to the documentation of the NQ-package for further details on the algorithm.
NilpotentQuotientLpGroup(
LpGroup[,
c] ) O
returns a polycyclic presentation for LpGroup/γc+1(LpGroup) if c is specified. If c is not given, this method attempts to compute the largest nilpotent quotient of LpGroup and will terminate only if LpGroup has a largest nilpotent quotient.
The following example computes the class-5-quotient of the Grigorchuk group on four generators.
gap> G:=ExamplesOfLPresentations(1);; gap> H:=NilpotentQuotientLpGroup(G,5); Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] gap> lcs:=LowerCentralSeries(H); [ Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ], Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2 ], Pcp-group with orders [ 2, 2, 2, 2, 2 ], Pcp-group with orders [ 2, 2, 2 ], Pcp-group with orders [ 2, 2 ], Pcp-group with orders [ ] ] gap> List([1..5],x->lcs[x]/lcs[x+1]); [ Pcp-group with orders [ 2, 2, 2 ], Pcp-group with orders [ 2, 2 ], Pcp-group with orders [ 2, 2 ], Pcp-group with orders [ 2 ], Pcp-group with orders [ 2, 2 ] ]
LargestNilpotentQuotient(
LpGroup ) A
returns the largest nilpotent quotient of the L-presented group LpGroup
if such quotient exists. It uses the NilpotentQuotientLpGroup
-method of the
NQL-package. If LpGroup does not have a largest nilpotent quotient, this
method will not terminate.
NqEpimorphismNilpotentQuotientLpGroup(
LpGroup[,
c] ) O
NqEpimorphismNilpotentQuotientLpGroup(
LpGroup[,
PcpGroup] ) O
In the first case, this method returns an epimorphism from the L-presented group LpGroup into its class-c quotient LpGroup/γc+1(LpGroup) if c is specified. If c is not given, this method attempts to compute an epimorphism into the largest nilpotent quotient of LpGroup. If LpGroup does not have a largest nilpotent quotient this method will not terminate.
If a pcp-group PcpGroup is given as additional parameter, then PcpGroup has to be a nilpotent quotient of LpGroup. The method computes an epimorphism from the L-presented group LpGroup into PcpGroup.
The following example computes an epimorphism from the Grigorchuk group on four generators into its class-5-quotient.
gap> G:=ExamplesOfLPresentations(1); <L-presented group on the generators [ a, b, c, d ]> gap> epi:=NqEpimorphismNilpotentQuotientLpGroup(G,5); [ a, b, c, d ] -> [ g1, g2*g3, g2, g3 ] gap> H:=Image(epi); Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] gap> NilpotencyClassOfGroup(H); 5 gap> H:=NilpotentQuotientLpGroup(G,7); Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] gap> NilpotentQuotientLpGroup(G,10); Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] gap> NqEpimorphismNilpotentQuotientLpGroup(G,H); [ a, b, c, d ] -> [ g1, g2*g3, g2, g3 ] gap> Image(last); Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
AbelianInvariants(
LpGroup ) O
returns the Abelian invariants of the Abelian quotient of the L-presented
group LpGroup. It uses functions of the NilpotentQuotientLpGroup
method
(see NilpotentQuotientLpGroup).
gap> G:=ExamplesOfLPresentations(1);; gap> AbelianInvariants(G); [ 2, 2, 2 ]
In the following we give a short description of the nilpotent quotient algorithm for non-invariant L-presentations.
Let 〈 S | Q | Φ | R 〉 be an L-presentation for the L-presented group G with underlying invariant L-presentation 〈 S | Q' | Φ | R 〉 Denote the L-presented group given by the underlying invariant L-presentation by Γ.
The first step in computing a polycyclic presentation for G/γc(G) of the L-presented group G is to determine a polycyclic presentation for Γ/γc(Γ)
This will be done by induction on c. The induction step is a generalization of Nickel's nilpotent quotient algorithm. It returns a nilpotent presentation H for Γ/γc(Γ) and an epimorphism δ :Γ→H.
Then a nilpotent presentation for G/γc(G) can be determined using the nilpotent presentation H and an extension δ': FS→H of the epimorphism delta. The nilpotent quotient G/γc(G) is isomorphic to the factor H/〈 Qδ'〉H of H and the Polycyclic-package can be used to compute a polycyclic presentation for G/γc(G).
The efficiency of this general approach depends on the underlying invariant L-presentation 〈 S | Q' | Φ | R 〉. The set of fixed relators Q' should be as large as possible. Otherwise, the nilpotent quotient H gets unnecessarily large and slows down the induction step for the underlying invariant L-presentation.
The Grigorchuk group on four generators has the L-presentation
IsInvariantLPresentation
for this group.
gap> F:=FreeGroup("a","b","c","d"); <free group on the generators [ a, b, c, d ]> gap> AssignGeneratorVariables(F); #I Assigned the global variables [ a, b, c, d ] gap> rels:=[a^2,b^2,c^2,d^2,b*d*c];; gap> endos:=[GroupHomomorphismByImagesNC(F,F,[a,b,c,d],[c^a,d,b,c])];; gap> itrels:=[Comm(d,d^a),Comm(d,d^(a*c*a*c*a))];; gap> G:=LPresentedGroup(F,rels,endos,itrels); <L-presented group on the generators [ a, b, c, d ]> gap> List(rels,x->x^endos[1]); [ a^-1*c^2*a, d^2, b^2, c^2, d*c*b ] gap> SetIsInvariantLPresentation(G,true);
Second, one can define the underlying invariant L-presentation as the same L-presentation as the group itself.
gap> F:=FreeGroup("a","b","c","d"); <free group on the generators [ a, b, c, d ]> gap> AssignGeneratorVariables(F); #I Assigned the global variables [ a, b, c, d ] gap> rels:=[a^2,b^2,c^2,d^2,b*d*c];; gap> endos:=[GroupHomomorphismByImagesNC(F,F,[a,b,c,d],[c^a,d,b,c])];; gap> itrels:=[Comm(d,d^a),Comm(d,d^(a*c*a*c*a))];; gap> G:=LPresentedGroup(F,rels,endos,itrels); <L-presented group on the generators [ a, b, c, d ]> gap> U:=LPresentedGroup(F,rels,endos,itrels);; gap> SetUnderlyingInvariantLPresentation(G,U);
For saving memory the first method should be preferred. In general the L-presentation is not invariant and thus the second method is the method of choice.
[Up] [Previous] [Next] [Index]
NQL manual