  
  [1X5 [33X[0;0YNilpotent Quotients[133X[101X
  
  [33X[0;0YThis  chapter contains a description of the nilpotent quotient algorithm for
  associative  finitely presented algebras. We refer to [Eic11] for background
  on the algorithms used in this chapter.[133X
  
  
  [1X5.1 [33X[0;0YComputing nilpotent quotients[133X[101X
  
  [33X[0;0YLet  [22XA[122X  be  a  finitely  presented  algebra  in the [5XGAP[105X sense. The following
  function  can  be used to determine the class-[22Xc[122X nilpotent quotient of [22XA[122X. The
  quotient is described by a nilpotent table.[133X
  
  [1X5.1-1 NilpotentQuotientOfFpAlgebra[101X
  
  [33X[1;0Y[29X[2XNilpotentQuotientOfFpAlgebra[102X( [3XA[103X, [3Xc[103X ) [32X function[133X
  
  [33X[0;0YThe  output  of  this  function  is  a  nilpotent table with some additional
  entries.  In  particular,  there is the additional entry [10Ximg[110X which describes
  the images of the generators of [22XA[122X in the nilpotent table.[133X
  
  
  [1X5.2 [33X[0;0YExample of nilpotent quotient computation[133X[101X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XF := FreeAssociativeAlgebra(GF(2), 2);;[127X[104X
    [4X[25Xgap>[125X [27Xg := GeneratorsOfAlgebra(F);;[127X[104X
    [4X[25Xgap>[125X [27Xr := [g[1]^2, g[2]^2];;[127X[104X
    [4X[25Xgap>[125X [27XA := F/r;;[127X[104X
    [4X[25Xgap>[125X [27XNilpotentQuotientOfFpAlgebra(A,3);[127X[104X
    [4X[28Xrec( def := [ 1, 2 ], dim := 8, fld := GF(2), [128X[104X
    [4X[28X  img := [ <a GF2 vector of length 8>, <a GF2 vector of length 8> ], [128X[104X
    [4X[28X  mat := [ [  ], [  ] ], rnk := 2, [128X[104X
    [4X[28X  tab := [128X[104X
    [4X[28X    [ [128X[104X
    [4X[28X      [ <a GF2 vector of length 8>, <a GF2 vector of length 8>, [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ][128X[104X
    [4X[28X        , [128X[104X
    [4X[28X      [ <a GF2 vector of length 8>, <a GF2 vector of length 8>, [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ][128X[104X
    [4X[28X        , [128X[104X
    [4X[28X      [ [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ] ][128X[104X
    [4X[28X        , [128X[104X
    [4X[28X      [ [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [128X[104X
    [4X[28X          [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] [128X[104X
    [4X[28X         ] ], [128X[104X
    [4X[28X  wds := [ ,, [ 2, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 4 ], [ 2, 5 ], [ 1, 6 ] ], [128X[104X
    [4X[28X  wgs := [ 1, 1, 2, 2, 3, 3, 4, 4 ] )[128X[104X
  [4X[32X[104X
  
