[Up] [Previous] [Next] [Index]

3 Nilpotent Quotients of L-presented groups

Sections

  1. New methods for L-presented groups
  2. A short description of the algorithm

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.

3.1 New methods for L-presented groups

  • 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 ]
    

    3.2 A short description of the algorithm

    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

    ⟨ a,c,b,d | a2,b2,c2, d2,bcd | σ | [d,da],[d,dacaca]⟩.
    This L-presentation is invariant and hence the underlying invariant L-presentation is the same as above. There are two ways to compute nilpotent quotients of these groups: First, one can manually set the property 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
    June 2007