For an L-presented group G which is given by an invariant L-presentation a polycyclic presentation for G/γc+1(G) is computed by determine a weighted nilpotent quotient system for G/G' and extending it inductively to a quotient system for G/γc+1(G).
A quotient system in the NQL package is a record containing the following entries:
FromTheLeftCollector
of the nilpotent quotient represented by this
quotient system.
Definitions
A quotient system of an L-presented group given by an invariant L-presentation
can be computed by the following functions. Both are implemented in the
NilpotentQuotientLpGroup
- and NqEpimorphismNilpotentQuotientLpGroup
method.
InitQuotientSystem(
LpGroup )
returns a weighted nilpotent quotient system for the largest Abelian quotient of the L-presented group LpGroup.
ExtendQuotientSystem(
QS )
extends the weighted nilpotent quotient system QS of an L-presented group given by an invariant L-presentation.
gap> G:=ExamplesOfLPresentations(1); <L-presented group on the generators [ a, b, c, d ]> gap> Q:=InitQuotientSystem(G); rec( Lpres := <L-presented group on the generators [ a, b, c, d ]>, Pccol := <<from the left collector with 3 generators>>, Imgs := [ 1, [ 2, 1, 3, 1 ], 2, 3 ], Epimorphism := [ a, b, c, d ] -> [ g1, g2*g3, g2, g3 ], Weights := [ 1, 1, 1 ], Definitions := [ 1, 3, 4 ] ) gap> ExtendQuotientSystem(Q); rec( Lpres := <L-presented group on the generators [ a, b, c, d ]>, Pccol := <<from the left collector with 5 generators>>, Imgs := [ 1, [ 2, 1, 3, 1 ], 2, 3 ], Definitions := [ 1, 3, 4, [ 2, 1 ], [ 3, 1 ] ], Weights := [ 1, 1, 1, 2, 2 ], Epimorphism := [ a, b, c, d ] -> [ g1, g2*g3, g2, g3 ] )
To avoid repeated extensions of quotient systems the largest known quotient system is stored as an attribute of the invariant L-presentation. For non-invariant L-presentations the known nilpotent quotients and its epimorphisms are stored as an attribute.
NilpotentQuotientSystem(
LpGroup ) A
returns the largest known nilpotent quotient system of an L-presented group that is given by an invariant L-presentation.
gap> G:=ExamplesOfLPresentations(1);; gap> NilpotentQuotientLpGroup(G,5); Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] gap> NilpotentQuotientSystem(G); rec( Lpres := <L-presented group on the generators [ a, b, c, d ]>, Pccol := <<from the left collector with 10 generators>>, Imgs := [ 1, [ 2, 1, 3, 1 ], 2, 3 ], Definitions := [ 1, 3, 4, [ 2, 1 ], [ 3, 1 ], [ 4, 2 ], [ 4, 3 ], [ 7, 1 ], [ 8, 2 ], [ 8, 3 ] ], Weights := [ 1, 1, 1, 2, 2, 3, 3, 4, 5, 5 ], Epimorphism := [ a, b, c, d ] -> [ g1, g2*g3, g2, g3 ] ) gap> NilpotencyClassOfGroup(PcpGroupByCollectorNC(last.Pccol)); 5
NilpotentQuotients(
LpGroup ) A
returns all known nilpotent quotients of the non-invariant L-presentation LpGroup.
gap> G:=ExamplesOfLPresentations(3);; gap> HasIsInvariantLPresentation(G); false gap> NilpotentQuotientLpGroup(G,3); Pcp-group with orders [ 2, 0, 2, 2 ] gap> NilpotentQuotients(G); [ rec( Quotient := Pcp-group with orders [ 2, 0 ], Epimorphism := [ a, b, t ] -> [ g1, g1, g2 ] ), rec( Quotient := Pcp-group with orders [ 2, 0, 2 ], Epimorphism := [ a, b, t ] -> [ g1, g1, g2 ] ), rec( Quotient := Pcp-group with orders [ 2, 0, 2, 2 ], Epimorphism := [ a, b, t ] -> [ g1, g1, g2 ] ) ] gap> NilpotentQuotientSystem(UnderlyingInvariantLPresentation(G)); rec( Lpres := <L-presented group on the generators [ a, b, t ]>, Pccol := <<from the left collector with 9 generators>>, Imgs := [ 1, 2, 3 ], Definitions := [ 1, 2, 3, [ 3, 1 ], [ 3, 2 ], [ 4, 1 ], [ 5, 2 ], [ 4, 3 ], [ 5, 3 ] ], Weights := [ 1, 1, 1, 2, 2, 3, 3, 3, 3 ], Epimorphism := [ a, b, t ] -> [ g1, g2, g3 ] )
To get some information about the progress of the algorithm,
one can use the info class InfoNQL
.
InfoNQL
is the info class of the NQL-package. It gives further information on the progress of the nilpotent quotient algorithm for L-presented groups.
gap> SetInfoLevel(InfoNQL,1);; gap> G:=ExamplesOfLPresentations(1); #I The first Grigorchuk group on 4 generators <L-presented group on the generators [ a, b, c, d ]> gap> NilpotentQuotientLpGroup(G,5); #I Class 1: 3 generators with relative orders: [ 2, 2, 2 ] #I Class 2: 2 generators with relative orders: [ 2, 2 ] #I Class 3: 2 generators with relative orders: [ 2, 2 ] #I Class 4: 1 generators with relative orders: [ 2 ] #I Class 5: 2 generators with relative orders: [ 2, 2 ] Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ] gap> NilpotentQuotientLpGroup(G,10); #I Class 6: 2 generators with relative orders: [ 2, 2 ] #I Class 7: 1 generators with relative orders: [ 2 ] #I Class 8: 1 generators with relative orders: [ 2 ] #I Class 9: 2 generators with relative orders: [ 2, 2 ] #I Class 10: 2 generators with relative orders: [ 2, 2 ] Pcp-group with orders [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ]
InfoNQL_MAX_GENS
this global variable sets the limit of generators whose relative order will be
shown on each step of the nilpotent quotient algorithm if the 'InfoLevel' of
InfoNQL
is positive.
NQL manual