  
  [1X45 [33X[0;0YPolycyclic Groups[133X[101X
  
  [33X[0;0YA  group  [3XG[103X is [13Xpolycyclic[113X if there exists a subnormal series [22XG = C_1 > C_2 >
  ...  > C_n > C_{n+1} = { 1 }[122X with cyclic factors. Such a series is called [13Xpc
  series[113X of [3XG[103X.[133X
  
  [33X[0;0YEvery  polycyclic  group  is  solvable  and  every  finite solvable group is
  polycyclic.  However,  there  are  infinite  solvable  groups  which are not
  polycyclic.[133X
  
  [33X[0;0YIn  [5XGAP[105X  there  exists a large number of methods for polycyclic groups which
  are  based  upon the polycyclic structure of these groups. These methods are
  usually  very  efficient,  especially  for  groups  which  are  given  by  a
  pc-presentation  (see  chapter  [14X46[114X),  and  can  be  applied to many types of
  groups.  Hence  [5XGAP[105X  tries  to  use them whenever possible, for example, for
  permutation groups and matrix groups over finite fields that are known to be
  polycyclic  (the  only exception is the representation as finitely presented
  group for which the polycyclic methods cannot be used in general).[133X
  
  [33X[0;0YAt  the current state of implementations the [5XGAP[105X library contains methods to
  compute  with  finite polycyclic groups, while the [5XGAP[105X package [5XPolycyclic[105X by
  Bettina  Eick  and  Werner  Nickel  allows  also  computations with infinite
  polycyclic groups which are given by a pc-presentation.[133X
  
  
  [1X45.1 [33X[0;0YPolycyclic Generating Systems[133X[101X
  
  [33X[0;0YLet  [3XG[103X  be  a  polycyclic  group  with  a  pc  series as above. A [13Xpolycyclic
  generating sequence[113X ([13Xpcgs[113X for short) of [3XG[103X is a sequence [22XP := (g_1, ..., g_n)[122X
  of  elements  of [3XG[103X such that [22XC_i = ⟨ C_{i+1}, g_i ⟩[122X for [22X1 ≤ i ≤ n[122X. Note that
  each  polycyclic  group has a pcgs, but except for very small groups, a pcgs
  is not unique.[133X
  
  [33X[0;0YFor each index [22Xi[122X the subsequence of elements [22X(g_i, ..., g_n)[122X forms a pcgs of
  the  subgroup  [22XC_i[122X. In particular, these [13Xtails[113X generate the subgroups of the
  pc series and hence we say that the pc series is [13Xdetermined[113X by [22XP[122X.[133X
  
  [33X[0;0YLet  [22Xr_i[122X  be  the  index of [22XC_{i+1}[122X in [22XC_i[122X which is either a finite positive
  number  or  infinity.  Then  [22Xr_i[122X is the order of [22Xg_i C_{i+1}[122X and we call the
  resulting list of indices the [13Xrelative orders[113X of the pcgs [3XP[103X.[133X
  
  [33X[0;0YMoreover,  with  respect to a given pcgs [22X(g_1, ..., g_n)[122X each element [3Xg[103X of [3XG[103X
  can  be represented in a unique way as a product [22Xg = g_1^{e_1} ⋅ g_2^{e_2} ⋯
  g_n^{e_n}[122X  with exponents [22Xe_i ∈ {0, ..., r_i-1}[122X, if [22Xr_i[122X is finite, and [22Xe_i ∈
  ℤ[122X  otherwise.  Words of this form are called [13Xnormal words[113X or [13Xwords in normal
  form[113X.  Then  the  integer  vector  [22X[  e_1, ..., e_n ][122X is called the [13Xexponent
  vector[113X of the element [22Xg[122X. Furthermore, the smallest index [22Xk[122X such that [22Xe_k ≠ 0[122X
  is called the [13Xdepth[113X of [3Xg[103X and [22Xe_k[122X is the [13Xleading exponent[113X of [3Xg[103X.[133X
  
  [33X[0;0YFor many applications we have to assume that each of the relative orders [22Xr_i[122X
  is  either  a prime or infinity. This is equivalent to saying that there are
  no  trivial factors in the pc series and the finite factors of the pc series
  are  maximal  refined. Then we obtain that [22Xr_i[122X is the order of [22Xg C_{i+1}[122X for
  all  elements  [22Xg[122X  in [22XC_i ∖ C_{i+1}[122X and we call [22Xr_i[122X the [13Xrelative order[113X of the
  element [22Xg[122X.[133X
  
  
  [1X45.2 [33X[0;0YComputing a Pcgs[133X[101X
  
  [33X[0;0YSuppose  a  group  [3XG[103X is given; for example, let [3XG[103X be a permutation or matrix
  group.  Then  we  can  ask  [5XGAP[105X to compute a pcgs of this group. If [3XG[103X is not
  polycyclic, the result will be [9Xfail[109X.[133X
  
  [33X[0;0YNote  that  these  methods can only be applied if [3XG[103X is not given as finitely
  presented group. For finitely presented groups one can try to compute a pcgs
  via the polycyclic quotient methods, see [14X47.14[114X.[133X
  
  [33X[0;0YNote also that a pcgs behaves like a list.[133X
  
  [1X45.2-1 Pcgs[101X
  
  [29X[2XPcgs[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns a pcgs for the group [3XG[103X. If [3Xgrp[103X is not polycyclic it returns [9Xfail[109X [13Xand
  this result is not stored as attribute value[113X, in particular in this case the
  filter [10XHasPcgs[110X is [13Xnot[113X set for [3XG[103X![133X
  
  [1X45.2-2 IsPcgs[101X
  
  [29X[2XIsPcgs[102X( [3Xobj[103X ) [32X Category
  
  [33X[0;0YThe category of pcgs.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group((1,2,3,4),(1,2));;[127X[104X
    [4X[25Xgap>[125X [27Xp := Pcgs(G);[127X[104X
    [4X[28XPcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XIsPcgs( p );[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xp[1];[127X[104X
    [4X[28X(3,4)[128X[104X
    [4X[25Xgap>[125X [27XG := Group((1,2,3,4,5),(1,2));;[127X[104X
    [4X[25Xgap>[125X [27XPcgs(G);[127X[104X
    [4X[28Xfail[128X[104X
  [4X[32X[104X
  
  [1X45.2-3 CanEasilyComputePcgs[101X
  
  [29X[2XCanEasilyComputePcgs[102X( [3Xgrp[103X ) [32X filter
  
  [33X[0;0YThis  filter  indicates  whether  it  is  possible to compute a pcgs for [3Xgrp[103X
  cheaply.  Clearly,  [3Xgrp[103X  must  be  polycyclic in this case. However, not for
  every  polycyclic  group  there  is a method to compute a pcgs at low costs.
  This  filter  is  used in the method selection mainly. Note that this filter
  may change its value from [9Xfalse[109X to [9Xtrue[109X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( (1,2,3,4),(1,2) );[127X[104X
    [4X[28XGroup([ (1,2,3,4), (1,2) ])[128X[104X
    [4X[25Xgap>[125X [27XCanEasilyComputePcgs(G);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XPcgs(G);[127X[104X
    [4X[28XPcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XCanEasilyComputePcgs(G);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X45.3 [33X[0;0YDefining a Pcgs Yourself[133X[101X
  
  [33X[0;0YIn a number of situations it might be useful to supply a pcgs to a group.[133X
  
  [33X[0;0YNote  that  the  elementary  operations  for  such  a  pcgs  might be rather
  inefficient,  since [5XGAP[105X has to use generic methods in this case. It might be
  helpful  to  supply  the relative orders of the self-defined pcgs as well by
  [10XSetRelativeOrder[110X. See also [2XIsPrimeOrdersPcgs[102X ([14X45.4-3[114X).[133X
  
  [1X45.3-1 PcgsByPcSequence[101X
  
  [29X[2XPcgsByPcSequence[102X( [3Xfam[103X, [3Xpcs[103X ) [32X operation
  [29X[2XPcgsByPcSequenceNC[102X( [3Xfam[103X, [3Xpcs[103X ) [32X operation
  
  [33X[0;0Yconstructs  a pcgs for the elements family [3Xfam[103X from the elements in the list
  [3Xpcs[103X.  The  elements  must lie in the family [3Xfam[103X. [2XPcgsByPcSequence[102X and its [10XNC[110X
  variant will always create a new pcgs which is not induced by any other pcgs
  (cf. [2XInducedPcgsByPcSequence[102X ([14X45.7-2[114X)).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xfam := FamilyObj( (1,2) );; # the family of permutations[127X[104X
    [4X[25Xgap>[125X [27Xp := PcgsByPcSequence( fam, [(1,2),(1,2,3)] );[127X[104X
    [4X[28XPcgs([ (1,2), (1,2,3) ])[128X[104X
    [4X[25Xgap>[125X [27XRelativeOrders(p);[127X[104X
    [4X[28X[ 2, 3 ][128X[104X
    [4X[25Xgap>[125X [27XExponentsOfPcElement( p, (1,3,2) );[127X[104X
    [4X[28X[ 0, 2 ][128X[104X
  [4X[32X[104X
  
  
  [1X45.4 [33X[0;0YElementary Operations for a Pcgs[133X[101X
  
  [1X45.4-1 RelativeOrders[101X
  
  [29X[2XRelativeOrders[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns the list of relative orders of the pcgs [3Xpcgs[103X.[133X
  
  [1X45.4-2 IsFiniteOrdersPcgs[101X
  
  [29X[2XIsFiniteOrdersPcgs[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Ytests whether the relative orders of [3Xpcgs[103X are all finite.[133X
  
  [1X45.4-3 IsPrimeOrdersPcgs[101X
  
  [29X[2XIsPrimeOrdersPcgs[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Ytests whether the relative orders of [3Xpcgs[103X are prime numbers. Many algorithms
  require      a      pcgs      to      have      this      property.      The
  operation [2XIsomorphismRefinedPcGroup[102X ([14X46.4-8[114X) can be of help here.[133X
  
  [1X45.4-4 PcSeries[101X
  
  [29X[2XPcSeries[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns the subnormal series determined by [3Xpcgs[103X.[133X
  
  [1X45.4-5 GroupOfPcgs[101X
  
  [29X[2XGroupOfPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YThe group generated by [3Xpcgs[103X.[133X
  
  [1X45.4-6 OneOfPcgs[101X
  
  [29X[2XOneOfPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YThe identity of the group generated by [3Xpcgs[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( (1,2,3,4),(1,2) );; p := Pcgs(G);;[127X[104X
    [4X[25Xgap>[125X [27XRelativeOrders(p);[127X[104X
    [4X[28X[ 2, 3, 2, 2 ][128X[104X
    [4X[25Xgap>[125X [27XIsFiniteOrdersPcgs(p);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsPrimeOrdersPcgs(p);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XPcSeries(p);[127X[104X
    [4X[28X[ Group([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ]), [128X[104X
    [4X[28X  Group([ (2,4,3), (1,4)(2,3), (1,3)(2,4) ]), [128X[104X
    [4X[28X  Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,3)(2,4) ]), Group(()) [128X[104X
    [4X[28X ][128X[104X
  [4X[32X[104X
  
  
  [1X45.5 [33X[0;0YElementary Operations for a Pcgs and an Element[133X[101X
  
  [1X45.5-1 RelativeOrderOfPcElement[101X
  
  [29X[2XRelativeOrderOfPcElement[102X( [3Xpcgs[103X, [3Xelm[103X ) [32X operation
  
  [33X[0;0YThe relative order of [3Xelm[103X with respect to the prime order pcgs [3Xpcgs[103X.[133X
  
  [1X45.5-2 ExponentOfPcElement[101X
  
  [29X[2XExponentOfPcElement[102X( [3Xpcgs[103X, [3Xelm[103X, [3Xpos[103X ) [32X operation
  
  [33X[0;0Yreturns the [3Xpos[103X-th exponent of [3Xelm[103X with respect to [3Xpcgs[103X.[133X
  
  [1X45.5-3 ExponentsOfPcElement[101X
  
  [29X[2XExponentsOfPcElement[102X( [3Xpcgs[103X, [3Xelm[103X[, [3Xposran[103X] ) [32X operation
  
  [33X[0;0Yreturns  the  exponents  of  [3Xelm[103X  with  respect  to [3Xpcgs[103X. The three argument
  version returns the exponents in the positions given in [3Xposran[103X.[133X
  
  [1X45.5-4 DepthOfPcElement[101X
  
  [29X[2XDepthOfPcElement[102X( [3Xpcgs[103X, [3Xelm[103X ) [32X operation
  
  [33X[0;0Yreturns the depth of the element [3Xelm[103X with respect to [3Xpcgs[103X.[133X
  
  [1X45.5-5 LeadingExponentOfPcElement[101X
  
  [29X[2XLeadingExponentOfPcElement[102X( [3Xpcgs[103X, [3Xelm[103X ) [32X operation
  
  [33X[0;0Yreturns the leading exponent of [3Xelm[103X with respect to [3Xpcgs[103X.[133X
  
  [1X45.5-6 PcElementByExponents[101X
  
  [29X[2XPcElementByExponents[102X( [3Xpcgs[103X, [3Xlist[103X ) [32X function
  [29X[2XPcElementByExponentsNC[102X( [3Xpcgs[103X[, [3Xbasisind[103X], [3Xlist[103X ) [32X operation
  
  [33X[0;0Yreturns  the  element corresponding to the exponent vector [3Xlist[103X with respect
  to [3Xpcgs[103X. The exponents in [3Xlist[103X must be in the range of permissible exponents
  for  [3Xpcgs[103X.  [13XIt  is  not guaranteed that [2XPcElementByExponents[102X will reduce the
  exponents  modulo  the  relative  orders[113X.  (You  should  use  the  operation
  [2XLinearCombinationPcgs[102X  ([14X45.5-7[114X)  for  this purpose.) The [10XNC[110X version does not
  check  that  the  lengths  of  the lists fit together and does not check the
  exponent range.[133X
  
  [33X[0;0YThe  three  argument  version  gives exponents only w.r.t. the generators in
  [3Xpcgs[103X indexed by [3Xbasisind[103X.[133X
  
  [1X45.5-7 LinearCombinationPcgs[101X
  
  [29X[2XLinearCombinationPcgs[102X( [3Xpcgs[103X, [3Xlist[103X[, [3Xone[103X] ) [32X function
  
  [33X[0;0Yreturns    the    product    [22X∏_i    [3Xpcgs[103X[i]^{[3Xlist[103X[i]}[122X.    In   contrast   to
  [2XPcElementByExponents[102X ([14X45.5-6[114X) this permits negative exponents. [3Xpcgs[103X might be
  a  list of group elements. In this case, an appropriate identity element [3Xone[103X
  must be given. [3Xlist[103X can be empty.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( (1,2,3,4),(1,2) );; P := Pcgs(G);;[127X[104X
    [4X[25Xgap>[125X [27Xg := PcElementByExponents(P, [0,1,1,1]);[127X[104X
    [4X[28X(1,2,3)[128X[104X
    [4X[25Xgap>[125X [27XExponentsOfPcElement(P, g);[127X[104X
    [4X[28X[ 0, 1, 1, 1 ][128X[104X
  [4X[32X[104X
  
  [1X45.5-8 SiftedPcElement[101X
  
  [29X[2XSiftedPcElement[102X( [3Xpcgs[103X, [3Xelm[103X ) [32X operation
  
  [33X[0;0Ysifts [3Xelm[103X through [3Xpcgs[103X, reducing it if the depth is the same as the depth of
  one  of the generators in [3Xpcgs[103X. Thus the identity is returned if [3Xelm[103X lies in
  the group generated by [3Xpcgs[103X. [3Xpcgs[103X must be an induced pcgs (see section [14X45.7[114X)
  and [3Xelm[103X must lie in the span of the parent of [3Xpcgs[103X.[133X
  
  [1X45.5-9 CanonicalPcElement[101X
  
  [29X[2XCanonicalPcElement[102X( [3Xipcgs[103X, [3Xelm[103X ) [32X operation
  
  [33X[0;0Yreduces [3Xelm[103X at the induces pcgs [3Xipcgs[103X such that the exponents of the reduced
  result  [3Xr[103X  are  zero  at the depths for which there are generators in [3Xipcgs[103X.
  Elements, whose quotient lies in the group generated by [3Xipcgs[103X yield the same
  canonical element.[133X
  
  [1X45.5-10 ReducedPcElement[101X
  
  [29X[2XReducedPcElement[102X( [3Xpcgs[103X, [3Xx[103X, [3Xy[103X ) [32X operation
  
  [33X[0;0Yreduces the element [3Xx[103X by dividing off (from the left) a power of [3Xy[103X such that
  the leading coefficient of the result with respect to [3Xpcgs[103X becomes zero. The
  elements [3Xx[103X and [3Xy[103X therefore have to have the same depth.[133X
  
  [1X45.5-11 CleanedTailPcElement[101X
  
  [29X[2XCleanedTailPcElement[102X( [3Xpcgs[103X, [3Xelm[103X, [3Xdep[103X ) [32X operation
  
  [33X[0;0Yreturns  an  element  in  the  span of [3Xpcgs[103X whose exponents for indices [22X1[122X to
  [22X[3Xdep[103X-1[122X  with  respect  to  [3Xpcgs[103X  are  the same as those of [3Xelm[103X, the remaining
  exponents  are undefined. This can be used to obtain more [21Xsimple[121X elements if
  only representatives in a factor are required, see [14X45.9[114X.[133X
  
  [33X[0;0YThe  difference  to [2XHeadPcElementByNumber[102X ([14X45.5-12[114X) is that this function is
  guaranteed to zero out trailing coefficients while [2XCleanedTailPcElement[102X will
  only do this if it can be done cheaply.[133X
  
  [1X45.5-12 HeadPcElementByNumber[101X
  
  [29X[2XHeadPcElementByNumber[102X( [3Xpcgs[103X, [3Xelm[103X, [3Xdep[103X ) [32X operation
  
  [33X[0;0Yreturns  an  element  in  the  span of [3Xpcgs[103X whose exponents for indices [22X1[122X to
  [3Xdep[103X[22X-1[122X  with  respect  to  [3Xpcgs[103X  are  the same as those of [3Xelm[103X, the remaining
  exponents  are zero. This can be used to obtain more [21Xsimple[121X elements if only
  representatives in a factor are required.[133X
  
  
  [1X45.6 [33X[0;0YExponents of Special Products[133X[101X
  
  [33X[0;0YThere are certain products of elements whose exponents are used often within
  algorithms,  and  which  might be obtained more easily than by computing the
  product first and to obtain its exponents afterwards. The operations in this
  section provide a way to obtain such exponent vectors directly.[133X
  
  [33X[0;0Y(The  circumstances  under which these operations give a speedup depend very
  much  on  the  pcgs  and the representation of elements that is used. So the
  following  operations  are  not  guaranteed to give a speedup in every case,
  however  the default methods are not slower than to compute the exponents of
  a product and thus these operations should [13Xalways[113X be used if applicable.)[133X
  
  [33X[0;0YThe  second  class are exponents of products of the generators which make up
  the  pcgs.  If the pcgs used is a family pcgs (see [2XFamilyPcgs[102X ([14X46.1-1[114X)) then
  these exponents can be looked up and do not need to be computed.[133X
  
  [1X45.6-1 ExponentsConjugateLayer[101X
  
  [29X[2XExponentsConjugateLayer[102X( [3Xmpcgs[103X, [3Xelm[103X, [3Xe[103X ) [32X operation
  
  [33X[0;0YComputes  the  exponents  of [3Xelm[103X[10X^[110X[3Xe[103X with respect to [3Xmpcgs[103X; [3Xelm[103X must be in the
  span  of  [3Xmpcgs[103X,  [3Xe[103X a pc element in the span of the parent pcgs of [3Xmpcgs[103X and
  [3Xmpcgs[103X  must be the modulo pcgs for an abelian layer. (This is the usual case
  when  acting  on  a  chief  factor). In this case if [3Xmpcgs[103X is induced by the
  family  pcgs  (see  section [14X45.7[114X), the exponents can be computed directly by
  looking  up  exponents  without having to compute in the group and having to
  collect a potential tail.[133X
  
  [1X45.6-2 ExponentsOfRelativePower[101X
  
  [29X[2XExponentsOfRelativePower[102X( [3Xpcgs[103X, [3Xi[103X ) [32X operation
  
  [33X[0;0YFor  [22Xp  =  [3Xpcgs[103X[[3Xi[103X][122X this function returns the exponent vector with respect to
  [3Xpcgs[103X  of the element [22Xp^e[122X where [22Xe[122X is the relative order of [3Xp[103X in [3Xpcgs[103X. For the
  family  pcgs  or pcgs induced by it (see section [14X45.7[114X), this might be faster
  than computing the element and computing its exponent vector.[133X
  
  [1X45.6-3 ExponentsOfConjugate[101X
  
  [29X[2XExponentsOfConjugate[102X( [3Xpcgs[103X, [3Xi[103X, [3Xj[103X ) [32X operation
  
  [33X[0;0Yreturns  the  exponents  of  [10X[3Xpcgs[103X[10X[[3Xi[103X[10X]^[3Xpcgs[103X[10X[[3Xj[103X[10X][110X  with  respect to [3Xpcgs[103X. For the
  family  pcgs  or pcgs induced by it (see section [14X45.7[114X), this might be faster
  than computing the element and computing its exponent vector.[133X
  
  [1X45.6-4 ExponentsOfCommutator[101X
  
  [29X[2XExponentsOfCommutator[102X( [3Xpcgs[103X, [3Xi[103X, [3Xj[103X ) [32X operation
  
  [33X[0;0Yreturns  the  exponents  of  the  commutator  [10XComm(  [110X[22X[3Xpcgs[103X[[3Xi[103X], [3Xpcgs[103X[[3Xj[103X][122X[10X )[110X with
  respect  to  [3Xpcgs[103X.  For  the family pcgs or pcgs induced by it, (see section
  [14X45.7[114X),  this  might  be  faster than computing the element and computing its
  exponent vector.[133X
  
  
  [1X45.7 [33X[0;0YSubgroups of Polycyclic Groups - Induced Pcgs[133X[101X
  
  [33X[0;0YLet  [3XU[103X  be  a  subgroup  of  [3XG[103X and let [3XP[103X be a pcgs of [3XG[103X as above such that [3XP[103X
  determines  the  subnormal  series [22XG = C_1 > ... > C_{n+1} = { 1 }[122X. Then the
  series  of  subgroups  [22XU  ∩  C_i[122X  is  a subnormal series of [3XU[103X with cyclic or
  trivial factors. Hence, if we choose an element [22Xu_{i_j} ∈ (U ∩ C_{i_j}) ∖ (U
  ∩  C_{i_j+1})[122X whenever this factor is non-trivial, then we obtain a pcgs [22XQ =
  (u_{i_1},  ..., u_{i_m})[122X of [22XU[122X. We say that [22XQ[122X is an [13Xinduced pcgs[113X with respect
  to [3XP[103X. The pcgs [3XP[103X is the [13Xparent pcgs[113X to the induced pcgs [3XQ[103X.[133X
  
  [33X[0;0YNote  that the pcgs [22XQ[122X is induced with respect to [3XP[103X if and only if the matrix
  of  exponent  vectors  of the elements [22Xu_{i_j}[122X with respect to [3XP[103X is in upper
  triangular form. Thus [22XQ[122X is not unique in general.[133X
  
  [33X[0;0YIn  particular,  the  elements  of  an  induced pcgs do [13Xnot necessarily[113X have
  leading   coefficient  1  relative  to  the  inducing  pcgs.  The  attribute
  [2XLeadCoeffsIGS[102X  ([14X45.7-7[114X)  holds the leading coefficients in case they have to
  be renormed in an algorithm.[133X
  
  [33X[0;0YEach  induced  pcgs is a pcgs and hence allows all elementary operations for
  pcgs.  On the other hand each pcgs could be transformed into an induced pcgs
  for  the  group  defined  by the pcgs, but note that an arbitrary pcgs is in
  general not an induced pcgs for technical reasons.[133X
  
  [33X[0;0YAn induced pcgs is [21Xcompatible[121X with its parent, see [2XParentPcgs[102X ([14X45.7-3[114X).[133X
  
  [33X[0;0YIn  [LNS84]  a  [21Xnon-commutative  Gauss[121X  algorithm is described to compute an
  induced pcgs of a subgroup [3XU[103X from a generating set of [3XU[103X. For calling this in
  [5XGAP[105X, see [14X45.7-4[114X to [14X45.7-8[114X.[133X
  
  [33X[0;0YTo create a subgroup generated by an induced pcgs such that the induced pcgs
  gets stored automatically, use [2XSubgroupByPcgs[102X ([14X45.7-9[114X).[133X
  
  [1X45.7-1 IsInducedPcgs[101X
  
  [29X[2XIsInducedPcgs[102X( [3Xpcgs[103X ) [32X Category
  
  [33X[0;0YThe category of induced pcgs. This a subcategory of pcgs.[133X
  
  [1X45.7-2 InducedPcgsByPcSequence[101X
  
  [29X[2XInducedPcgsByPcSequence[102X( [3Xpcgs[103X, [3Xpcs[103X ) [32X operation
  [29X[2XInducedPcgsByPcSequenceNC[102X( [3Xpcgs[103X, [3Xpcs[103X[, [3Xdepths[103X] ) [32X operation
  
  [33X[0;0YIf  [3Xpcs[103X is a list of elements that form an induced pcgs with respect to [3Xpcgs[103X
  this operation returns an induced pcgs with these elements.[133X
  
  [33X[0;0YIn  the  third  version, the depths of [3Xpcs[103X with respect to [3Xpcgs[103X can be given
  (they are computed anew otherwise).[133X
  
  [1X45.7-3 ParentPcgs[101X
  
  [29X[2XParentPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  pcgs  by  which  [3Xpcgs[103X was induced. If [3Xpcgs[103X was not induced, it
  simply returns [3Xpcgs[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( (1,2,3,4),(1,2) );;[127X[104X
    [4X[25Xgap>[125X [27XP := Pcgs(G);;[127X[104X
    [4X[25Xgap>[125X [27XK := InducedPcgsByPcSequence( P, [(1,2,3,4),(1,3)(2,4)] );[127X[104X
    [4X[28XPcgs([ (1,2,3,4), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XParentPcgs( K );[127X[104X
    [4X[28XPcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XIsInducedPcgs( K );[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X45.7-4 InducedPcgs[101X
  
  [29X[2XInducedPcgs[102X( [3Xpcgs[103X, [3Xgrp[103X ) [32X operation
  
  [33X[0;0Ycomputes a pcgs for [3Xgrp[103X which is induced by [3Xpcgs[103X. If [3Xpcgs[103X has a parent pcgs,
  then the result is induced with respect to this parent pcgs.[133X
  
  [33X[0;0Y[2XInducedPcgs[102X  is  a  wrapper  function only. Therefore, methods for computing
  computing   an   induced   pcgs   should  be  installed  for  the  operation
  [10XInducedPcgsOp[110X.[133X
  
  [1X45.7-5 InducedPcgsByGenerators[101X
  
  [29X[2XInducedPcgsByGenerators[102X( [3Xpcgs[103X, [3Xgens[103X ) [32X operation
  [29X[2XInducedPcgsByGeneratorsNC[102X( [3Xpcgs[103X, [3Xgens[103X ) [32X operation
  
  [33X[0;0Yreturns  an  induced pcgs with respect to [3Xpcgs[103X for the subgroup generated by
  [3Xgens[103X.[133X
  
  [1X45.7-6 InducedPcgsByPcSequenceAndGenerators[101X
  
  [29X[2XInducedPcgsByPcSequenceAndGenerators[102X( [3Xpcgs[103X, [3Xind[103X, [3Xgens[103X ) [32X operation
  
  [33X[0;0Yreturns  an  induced  pcgs with respect to [3Xpcgs[103X of the subgroup generated by
  [3Xind[103X  and  [3Xgens[103X.  Here [3Xind[103X must be an induced pcgs with respect to [3Xpcgs[103X (or a
  list of group elements that form such an igs) and it will be used as initial
  sequence for the computation.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( (1,2,3,4),(1,2) );;  P := Pcgs(G);;[127X[104X
    [4X[25Xgap>[125X [27XI := InducedPcgsByGenerators( P, [(1,2,3,4)] );[127X[104X
    [4X[28XPcgs([ (1,2,3,4), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XJ := InducedPcgsByPcSequenceAndGenerators( P, I, [(1,2)] );[127X[104X
    [4X[28XPcgs([ (1,2,3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ])[128X[104X
  [4X[32X[104X
  
  [1X45.7-7 LeadCoeffsIGS[101X
  
  [29X[2XLeadCoeffsIGS[102X( [3Xigs[103X ) [32X attribute
  
  [33X[0;0YThis  attribute  is  used  to store leading coefficients with respect to the
  parent  pcgs.  the  [3Xi[103X-th  entry  –if  bound–  is the leading exponent of the
  element  of  [3Xigs[103X that has depth [3Xi[103X in the parent. (It cannot be assigned to a
  component in the object created by [2XInducedPcgsByPcSequenceNC[102X ([14X45.7-2[114X) as the
  permutation  group  methods  call  it from within the postprocessing, before
  this postprocessing however no coefficients may be computed.)[133X
  
  [1X45.7-8 ExtendedPcgs[101X
  
  [29X[2XExtendedPcgs[102X( [3XN[103X, [3Xgens[103X ) [32X operation
  
  [33X[0;0Yextends the pcgs [3XN[103X (induced w.r.t. [3Xhome[103X) to a new induced pcgs by prepending
  [3Xgens[103X. No checks are performed that this really yields an induced pcgs.[133X
  
  [1X45.7-9 SubgroupByPcgs[101X
  
  [29X[2XSubgroupByPcgs[102X( [3XG[103X, [3Xpcgs[103X ) [32X operation
  
  [33X[0;0Yreturns a subgroup of [3XG[103X generated by the elements of [3Xpcgs[103X.[133X
  
  
  [1X45.8 [33X[0;0YSubgroups of Polycyclic Groups – Canonical Pcgs[133X[101X
  
  [33X[0;0YThe  induced  pcgs  [3XQ[103X  of  [3XU[103X  is  called [13Xcanonical[113X if the matrix of exponent
  vectors  contains  normed  vectors  only and above each leading entry in the
  matrix  there  are  0's  only.  The canonical pcgs of [3XU[103X with respect to [3XP[103X is
  unique and hence such pcgs can be used to compare subgroups.[133X
  
  [1X45.8-1 IsCanonicalPcgs[101X
  
  [29X[2XIsCanonicalPcgs[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0YAn  induced  pcgs  is canonical if the matrix of the exponent vectors of the
  elements of [3Xpcgs[103X with respect to the [2XParentPcgs[102X ([14X45.7-3[114X) value of [3Xpcgs[103X is in
  Hermite normal form (see [LNS84]). While a subgroup can have various induced
  pcgs with respect to a parent pcgs a canonical pcgs is unique.[133X
  
  [1X45.8-2 CanonicalPcgs[101X
  
  [29X[2XCanonicalPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns the canonical pcgs corresponding to the induced pcgs [3Xpcgs[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group((1,2,3,4),(5,6,7));[127X[104X
    [4X[28XGroup([ (1,2,3,4), (5,6,7) ])[128X[104X
    [4X[25Xgap>[125X [27XP := Pcgs(G);[127X[104X
    [4X[28XPcgs([ (5,6,7), (1,2,3,4), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XI := InducedPcgsByPcSequence(P, [(5,6,7)*(1,3)(2,4),(1,3)(2,4)] );[127X[104X
    [4X[28XPcgs([ (1,3)(2,4)(5,6,7), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XCanonicalPcgs(I);[127X[104X
    [4X[28XPcgs([ (5,6,7), (1,3)(2,4) ])[128X[104X
  [4X[32X[104X
  
  
  [1X45.9 [33X[0;0YFactor Groups of Polycyclic Groups – Modulo Pcgs[133X[101X
  
  [33X[0;0YLet  [3XN[103X  be a normal subgroup of [3XG[103X such that [3XG/N[103X is polycyclic with pcgs [22X(h_1
  N,  ...,  h_r  N)[122X.  Then  we call the sequence of preimages [22X(h_1, ... h_r)[122X a
  [13Xmodulo  pcgs[113X  of  [3XG/N[103X. [3XG[103X is called the [13Xnumerator[113X of the modulo pcgs and [3XN[103X is
  the [13Xdenominator[113X of the modulo pcgs.[133X
  
  [33X[0;0YModulo  pcgs are often used to facilitate efficient computations with factor
  groups,  since  they  allow computations with factor groups without formally
  defining the factor group at all.[133X
  
  [33X[0;0YAll  elementary  operations  of  pcgs,  see Sections [14X45.4[114X and [14X45.5[114X, apply to
  modulo  pcgs  as  well.  However,  it  is in general not possible to compute
  induced pcgs with respect to a modulo pcgs.[133X
  
  [33X[0;0YTwo  more  elementary  operations  for modulo pcgs are [2XNumeratorOfModuloPcgs[102X
  ([14X45.9-3[114X) and [2XDenominatorOfModuloPcgs[102X ([14X45.9-4[114X).[133X
  
  [1X45.9-1 ModuloPcgs[101X
  
  [29X[2XModuloPcgs[102X( [3XG[103X, [3XN[103X ) [32X operation
  
  [33X[0;0Yreturns a modulo pcgs for the factor [22X[3XG[103X/[3XN[103X[122X which must be solvable, which [3XN[103X may
  be  insolvable.  [2XModuloPcgs[102X  will  return [13Xa[113X pcgs for the factor, there is no
  guarantee  that  it  will  be  [21Xcompatible[121X  with  any  other pcgs. If this is
  required, the [9Xmod[109X operator must be used on induced pcgs, see [2X\mod[102X ([14X45.9-5[114X).[133X
  
  [1X45.9-2 IsModuloPcgs[101X
  
  [29X[2XIsModuloPcgs[102X( [3Xobj[103X ) [32X Category
  
  [33X[0;0YThe  category  of  modulo pcgs. Note that each pcgs is a modulo pcgs for the
  trivial subgroup.[133X
  
  [1X45.9-3 NumeratorOfModuloPcgs[101X
  
  [29X[2XNumeratorOfModuloPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns a generating set for the numerator of the modulo pcgs [3Xpcgs[103X.[133X
  
  [1X45.9-4 DenominatorOfModuloPcgs[101X
  
  [29X[2XDenominatorOfModuloPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns a generating set for the denominator of the modulo pcgs [3Xpcgs[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group( (1,2,3,4,5),(1,2) );[127X[104X
    [4X[28XGroup([ (1,2,3,4,5), (1,2) ])[128X[104X
    [4X[25Xgap>[125X [27XP := ModuloPcgs(G, DerivedSubgroup(G) );[127X[104X
    [4X[28XPcgs([ (4,5) ])[128X[104X
    [4X[25Xgap>[125X [27XNumeratorOfModuloPcgs(P);[127X[104X
    [4X[28X[ (1,2,3,4,5), (1,2) ][128X[104X
    [4X[25Xgap>[125X [27XDenominatorOfModuloPcgs(P);[127X[104X
    [4X[28X[ (1,3,2), (2,4,3), (2,3)(4,5) ][128X[104X
    [4X[25Xgap>[125X [27XRelativeOrders(P);[127X[104X
    [4X[28X[ 2 ][128X[104X
    [4X[25Xgap>[125X [27XExponentsOfPcElement( P, (1,2,3,4,5) );[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XExponentsOfPcElement( P, (4,5) );[127X[104X
    [4X[28X[ 1 ][128X[104X
  [4X[32X[104X
  
  [1X45.9-5 \mod[101X
  
  [29X[2X\mod[102X( [3XP[103X, [3XI[103X ) [32X method
  
  [33X[0;0YModulo Pcgs can also be built from compatible induced pcgs. Let [22XG[122X be a group
  with  pcgs  [3XP[103X  and  let  [3XI[103X  be  an induced pcgs of a normal subgroup [22XN[122X of [22XG[122X.
  (Respectively: [3XP[103X and [3XI[103X are both induced with respect to the [13Xsame[113X Pcgs.) Then
  we can compute a modulo pcgs of [22XG[122X mod [22XN[122X by[133X
  
  [33X[0;0Y[3XP[103X [9Xmod[109X [3XI[103X[133X
  
  [33X[0;0YNote  that  in  this  case  we  obtain  the  advantage  that  the  values of
  [2XNumeratorOfModuloPcgs[102X ([14X45.9-3[114X) and [2XDenominatorOfModuloPcgs[102X ([14X45.9-4[114X) are just
  [3XP[103X and [3XI[103X, respectively, and hence are unique.[133X
  
  [33X[0;0YThe  resulting  modulo  pcgs  will  consist  of  a  subset  of [3XP[103X and will be
  [21Xcompatible[121X with [3XP[103X (or its parent).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := Group((1,2,3,4));;[127X[104X
    [4X[25Xgap>[125X [27XP := Pcgs(G);[127X[104X
    [4X[28XPcgs([ (1,2,3,4), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XI := InducedPcgsByGenerators(P, [(1,3)(2,4)]);[127X[104X
    [4X[28XPcgs([ (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XM := P mod I;[127X[104X
    [4X[28X[ (1,2,3,4) ][128X[104X
    [4X[25Xgap>[125X [27XNumeratorOfModuloPcgs(M);[127X[104X
    [4X[28XPcgs([ (1,2,3,4), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XDenominatorOfModuloPcgs(M);[127X[104X
    [4X[28XPcgs([ (1,3)(2,4) ])[128X[104X
  [4X[32X[104X
  
  [1X45.9-6 CorrespondingGeneratorsByModuloPcgs[101X
  
  [29X[2XCorrespondingGeneratorsByModuloPcgs[102X( [3Xmpcgs[103X, [3Ximgs[103X ) [32X function
  
  [33X[0;0YLet [3Xmpcgs[103X be a modulo pcgs for a factor of a group [22XG[122X and let [22XU[122X be a subgroup
  of  [22XG[122X  generated  by [3Ximgs[103X such that [22XU[122X covers the factor for the modulo pcgs.
  Then this function computes elements in [22XU[122X corresponding to the generators of
  the modulo pcgs.[133X
  
  [33X[0;0YNote  that  the  computation  of induced generating sets is not possible for
  some modulo pcgs.[133X
  
  [1X45.9-7 CanonicalPcgsByGeneratorsWithImages[101X
  
  [29X[2XCanonicalPcgsByGeneratorsWithImages[102X( [3Xpcgs[103X, [3Xgens[103X, [3Ximgs[103X ) [32X operation
  
  [33X[0;0Ycomputes   a   canonical,  [3Xpcgs[103X-induced  pcgs  for  the  span  of  [3Xgens[103X  and
  simultaneously  does  the  same  transformations  on [3Ximgs[103X, preserving thus a
  correspondence  between  [3Xgens[103X  and [3Ximgs[103X. This operation is used to represent
  homomorphisms from a pc group.[133X
  
  
  [1X45.10 [33X[0;0YFactor Groups of Polycyclic Groups in their Own Representation[133X[101X
  
  [33X[0;0YIf  substantial calculations are done in a factor it might be worth still to
  construct the factor group in its own representation (for example by calling
  [2XPcGroupWithPcgs[102X ([14X46.5-1[114X) on a modulo pcgs.[133X
  
  [33X[0;0YThe following functions are intended for working with factor groups obtained
  by  factoring  out the tail of a pcgs. They provide a way to map elements or
  induced  pcgs quickly in the factor (respectively to take preimages) without
  the need to construct a homomorphism.[133X
  
  [33X[0;0YThe  setup is always a pcgs [3Xpcgs[103X of [3XG[103X and a pcgs [3Xfpcgs[103X of a factor group [22XH =
  [3XG[103X/[3XN[103X[122X which corresponds to a head of [3Xpcgs[103X.[133X
  
  [33X[0;0YNo tests for validity of the input are performed.[133X
  
  [1X45.10-1 ProjectedPcElement[101X
  
  [29X[2XProjectedPcElement[102X( [3Xpcgs[103X, [3Xfpcgs[103X, [3Xelm[103X ) [32X function
  
  [33X[0;0Yreturns the image in [3XH[103X of an element [3Xelm[103X of [3XG[103X.[133X
  
  [1X45.10-2 ProjectedInducedPcgs[101X
  
  [29X[2XProjectedInducedPcgs[102X( [3Xpcgs[103X, [3Xfpcgs[103X, [3Xipcgs[103X ) [32X function
  
  [33X[0;0Y[3Xipcgs[103X  must  be an induced pcgs with respect to [3Xpcgs[103X. This operation returns
  an induced pcgs with respect to [3Xfpcgs[103X consisting of the nontrivial images of
  [3Xipcgs[103X.[133X
  
  [1X45.10-3 LiftedPcElement[101X
  
  [29X[2XLiftedPcElement[102X( [3Xpcgs[103X, [3Xfpcgs[103X, [3Xelm[103X ) [32X function
  
  [33X[0;0Yreturns a preimage in [3XG[103X of an element [3Xelm[103X of [3XH[103X.[133X
  
  [1X45.10-4 LiftedInducedPcgs[101X
  
  [29X[2XLiftedInducedPcgs[102X( [3Xpcgs[103X, [3Xfpcgs[103X, [3Xipcgs[103X, [3Xker[103X ) [32X function
  
  [33X[0;0Y[3Xipcgs[103X  must be an induced pcgs with respect to [3Xfpcgs[103X. This operation returns
  an  induced  pcgs with respect to [3Xpcgs[103X consisting of the preimages of [3Xipcgs[103X,
  appended  by  the elements in [3Xker[103X (assuming there is a bijection of [3Xpcgs[103X mod
  [3Xker[103X to [3Xfpcgs[103X). [3Xker[103X might be a simple element list.[133X
  
  
  [1X45.11 [33X[0;0YPcgs and Normal Series[133X[101X
  
  [33X[0;0YBy  definition,  a  pcgs  determines  a  pc  series of its underlying group.
  However,  in  many  applications  it  will  be necessary that this pc series
  refines  a  normal  series  with  certain  properties; for example, a normal
  series with abelian factors.[133X
  
  [33X[0;0YThere  are  functions  in [5XGAP[105X to compute a pcgs through a normal series with
  elementary  abelian factors, a central series or the lower p-central series.
  See also Section [14X45.13[114X for a more explicit possibility.[133X
  
  [1X45.11-1 IsPcgsElementaryAbelianSeries[101X
  
  [29X[2XIsPcgsElementaryAbelianSeries[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Yreturns  [9Xtrue[109X  if  the  pcgs  [3Xpcgs[103X  refines  an  elementary  abelian series.
  [2XIndicesEANormalSteps[102X  ([14X45.11-3[114X) then gives the indices in the Pcgs, at which
  the subgroups of this series start.[133X
  
  [1X45.11-2 PcgsElementaryAbelianSeries[101X
  
  [29X[2XPcgsElementaryAbelianSeries[102X( [3XG[103X ) [32X attribute
  [29X[2XPcgsElementaryAbelianSeries[102X( [3Xlist[103X ) [32X attribute
  
  [33X[0;0Ycomputes   a   pcgs  for  [3XG[103X  that  refines  an  elementary  abelian  series.
  [2XIndicesEANormalSteps[102X  ([14X45.11-3[114X)  gives the indices in the pcgs, at which the
  normal  subgroups  of  this  series start. The second variant returns a pcgs
  that runs through the normal subgroups in the list [3Xlist[103X.[133X
  
  [1X45.11-3 IndicesEANormalSteps[101X
  
  [29X[2XIndicesEANormalSteps[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet [3Xpcgs[103X be a pcgs obtained as corresponding to a series of normal subgroups
  with    elementary    abelian    factors    (for    example   from   calling
  [2XPcgsElementaryAbelianSeries[102X  ([14X45.11-2[114X))  Then [2XIndicesEANormalSteps[102X returns a
  sorted  list  of integers, indicating the tails of [3Xpcgs[103X which generate these
  normal  subgroup of [3XG[103X. If [22Xi[122X is an element of this list, [22X(g_i, ..., g_n)[122X is a
  normal  subgroup  of  [3XG[103X.  The  list  always starts with [22X1[122X and ends with [22Xn+1[122X.
  (These  indices  form  [13Xone[113X  series  with  elementary abelian subfactors, not
  necessarily the most refined one.)[133X
  
  [33X[0;0YThe  attribute  [2XEANormalSeriesByPcgs[102X  ([14X45.11-4[114X) returns the actual series of
  subgroups.[133X
  
  [33X[0;0YFor  arbitrary pcgs not obtained as belonging to a special series such a set
  of   indices   not  necessarily  exists,  and  [2XIndicesEANormalSteps[102X  is  not
  guaranteed to work in this situation.[133X
  
  [33X[0;0YTypically,   [2XIndicesEANormalSteps[102X   is  set  by  [2XPcgsElementaryAbelianSeries[102X
  ([14X45.11-2[114X).[133X
  
  [1X45.11-4 EANormalSeriesByPcgs[101X
  
  [29X[2XEANormalSeriesByPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet [3Xpcgs[103X be a pcgs obtained as corresponding to a series of normal subgroups
  with    elementary    abelian    factors    (for    example   from   calling
  [2XPcgsElementaryAbelianSeries[102X  ([14X45.11-2[114X)).  This  attribute returns the actual
  series of normal subgroups, corresponding to [2XIndicesEANormalSteps[102X ([14X45.11-3[114X).[133X
  
  [1X45.11-5 IsPcgsCentralSeries[101X
  
  [29X[2XIsPcgsCentralSeries[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Yreturns  [9Xtrue[109X if the pcgs [3Xpcgs[103X refines an central elementary abelian series.
  [2XIndicesCentralNormalSteps[102X  ([14X45.11-7[114X)  then gives the indices in the pcgs, at
  which the subgroups of this series start.[133X
  
  [1X45.11-6 PcgsCentralSeries[101X
  
  [29X[2XPcgsCentralSeries[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Ycomputes  a  pcgs  for  [3XG[103X  that refines a central elementary abelian series.
  [2XIndicesCentralNormalSteps[102X  ([14X45.11-7[114X) gives the indices in the pcgs, at which
  the normal subgroups of this series start.[133X
  
  [1X45.11-7 IndicesCentralNormalSteps[101X
  
  [29X[2XIndicesCentralNormalSteps[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet [3Xpcgs[103X be a pcgs obtained as corresponding to a series of normal subgroups
  with   central   elementary   abelian  factors  (for  example  from  calling
  [2XPcgsCentralSeries[102X   ([14X45.11-6[114X)).  Then  [2XIndicesCentralNormalSteps[102X  returns  a
  sorted  list  of integers, indicating the tails of [3Xpcgs[103X which generate these
  normal subgroups of [3XG[103X. If [22Xi[122X is an element of this list, [22X(g_i, ..., g_n)[122X is a
  normal  subgroup  of  [3XG[103X.  The  list  always starts with [22X1[122X and ends with [22Xn+1[122X.
  (These  indices  form [13Xone[113X series with central elementary abelian subfactors,
  not necessarily the most refined one.)[133X
  
  [33X[0;0YThe  attribute [2XCentralNormalSeriesByPcgs[102X ([14X45.11-8[114X) returns the actual series
  of subgroups.[133X
  
  [33X[0;0YFor  arbitrary pcgs not obtained as belonging to a special series such a set
  of  indices  not  necessarily  exists,  and [2XIndicesCentralNormalSteps[102X is not
  guaranteed to work in this situation.[133X
  
  [33X[0;0YTypically, [2XIndicesCentralNormalSteps[102X is set by [2XPcgsCentralSeries[102X ([14X45.11-6[114X).[133X
  
  [1X45.11-8 CentralNormalSeriesByPcgs[101X
  
  [29X[2XCentralNormalSeriesByPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet [3Xpcgs[103X be a pcgs obtained as corresponding to a series of normal subgroups
  with   central   elementary   abelian  factors  (for  example  from  calling
  [2XPcgsCentralSeries[102X  ([14X45.11-6[114X)).  This  attribute returns the actual series of
  normal subgroups, corresponding to [2XIndicesCentralNormalSteps[102X ([14X45.11-7[114X).[133X
  
  [1X45.11-9 IsPcgsPCentralSeriesPGroup[101X
  
  [29X[2XIsPcgsPCentralSeriesPGroup[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Yreturns  [9Xtrue[109X if the pcgs [3Xpcgs[103X refines a [22Xp[122X-central elementary abelian series
  for  a  [22Xp[122X-group.  [2XIndicesPCentralNormalStepsPGroup[102X ([14X45.11-11[114X) then gives the
  indices in the pcgs, at which the subgroups of this series start.[133X
  
  [1X45.11-10 PcgsPCentralSeriesPGroup[101X
  
  [29X[2XPcgsPCentralSeriesPGroup[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Ycomputes  a  pcgs  for  the  [22Xp[122X-group  [3XG[103X  that refines a [22Xp[122X-central elementary
  abelian   series.   [2XIndicesPCentralNormalStepsPGroup[102X  ([14X45.11-11[114X)  gives  the
  indices in the pcgs, at which the normal subgroups of this series start.[133X
  
  [1X45.11-11 IndicesPCentralNormalStepsPGroup[101X
  
  [29X[2XIndicesPCentralNormalStepsPGroup[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet [3Xpcgs[103X be a pcgs obtained as corresponding to a series of normal subgroups
  with   [22Xp[122X-central  elementary  abelian  factors  (for  example  from  calling
  [2XPcgsPCentralSeriesPGroup[102X  ([14X45.11-10[114X)). Then [2XIndicesPCentralNormalStepsPGroup[102X
  returns  a  sorted  list  of  integers,  indicating  the tails of [3Xpcgs[103X which
  generate these normal subgroups of [3XG[103X. If [22Xi[122X is an element of this list, [22X(g_i,
  ...,  g_n)[122X is a normal subgroup of [3XG[103X. The list always starts with [22X1[122X and ends
  with  [22Xn+1[122X.  (These  indices  form [13Xone[113X series with central elementary abelian
  subfactors, not necessarily the most refined one.)[133X
  
  [33X[0;0YThe attribute [2XPCentralNormalSeriesByPcgsPGroup[102X ([14X45.11-12[114X) returns the actual
  series of subgroups.[133X
  
  [33X[0;0YFor  arbitrary pcgs not obtained as belonging to a special series such a set
  of  indices  not necessarily exists, and [2XIndicesPCentralNormalStepsPGroup[102X is
  not guaranteed to work in this situation.[133X
  
  [33X[0;0YTypically,       [2XIndicesPCentralNormalStepsPGroup[102X       is       set      by
  [2XPcgsPCentralSeriesPGroup[102X ([14X45.11-10[114X).[133X
  
  [1X45.11-12 PCentralNormalSeriesByPcgsPGroup[101X
  
  [29X[2XPCentralNormalSeriesByPcgsPGroup[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet [3Xpcgs[103X be a pcgs obtained as corresponding to a series of normal subgroups
  with   [22Xp[122X-central  elementary  abelian  factors  (for  example  from  calling
  [2XPcgsPCentralSeriesPGroup[102X  ([14X45.11-10[114X)).  This  attribute  returns  the actual
  series        of        normal       subgroups,       corresponding       to
  [2XIndicesPCentralNormalStepsPGroup[102X ([14X45.11-11[114X).[133X
  
  [1X45.11-13 IsPcgsChiefSeries[101X
  
  [29X[2XIsPcgsChiefSeries[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Yreturns    [9Xtrue[109X    if    the    pcgs    [3Xpcgs[103X   refines   a   chief   series.
  [2XIndicesChiefNormalSteps[102X  ([14X45.11-15[114X)  then  gives the indices in the pcgs, at
  which the subgroups of this series start.[133X
  
  [1X45.11-14 PcgsChiefSeries[101X
  
  [29X[2XPcgsChiefSeries[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Ycomputes  a  pcgs for [3XG[103X that refines a chief series. [2XIndicesChiefNormalSteps[102X
  ([14X45.11-15[114X)  gives  the indices in the pcgs, at which the normal subgroups of
  this series start.[133X
  
  [1X45.11-15 IndicesChiefNormalSteps[101X
  
  [29X[2XIndicesChiefNormalSteps[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet  [3Xpcgs[103X  be a pcgs obtained as corresponding to a chief series for example
  from   calling  [2XPcgsChiefSeries[102X  ([14X45.11-14[114X)).  Then  [2XIndicesChiefNormalSteps[102X
  returns  a  sorted  list  of  integers,  indicating  the tails of [3Xpcgs[103X which
  generate these normal subgroups of [3XG[103X. If [22Xi[122X is an element of this list, [22X(g_i,
  ...,  g_n)[122X is a normal subgroup of [3XG[103X. The list always starts with [22X1[122X and ends
  with [22Xn+1[122X. (These indices form [13Xone[113X series with elementary abelian subfactors,
  not necessarily the most refined one.)[133X
  
  [33X[0;0YThe  attribute  [2XChiefNormalSeriesByPcgs[102X ([14X45.11-16[114X) returns the actual series
  of subgroups.[133X
  
  [33X[0;0YFor  arbitrary pcgs not obtained as belonging to a special series such a set
  of  indices  not  necessarily  exists,  and  [2XIndicesChiefNormalSteps[102X  is not
  guaranteed to work in this situation.[133X
  
  [33X[0;0YTypically, [2XIndicesChiefNormalSteps[102X is set by [2XPcgsChiefSeries[102X ([14X45.11-14[114X).[133X
  
  [1X45.11-16 ChiefNormalSeriesByPcgs[101X
  
  [29X[2XChiefNormalSeriesByPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0YLet  [3Xpcgs[103X be a pcgs obtained as corresponding to a chief series (for example
  from  calling [2XPcgsChiefSeries[102X ([14X45.11-14[114X)). This attribute returns the actual
  series   of   normal  subgroups,  corresponding  to  [2XIndicesChiefNormalSteps[102X
  ([14X45.11-15[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
    [4X[25Xgap>[125X [27Xp:=PcgsElementaryAbelianSeries(g);[127X[104X
    [4X[28XPcgs([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ])[128X[104X
    [4X[25Xgap>[125X [27XIndicesEANormalSteps(p);[127X[104X
    [4X[28X[ 1, 2, 3, 5 ][128X[104X
    [4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,5)(2,6)(3,7)(4,8));;[127X[104X
    [4X[25Xgap>[125X [27Xp:=PcgsCentralSeries(g);[127X[104X
    [4X[28XPcgs([ (1,5)(2,6)(3,7)(4,8), (5,6,7,8), (5,7)(6,8), [128X[104X
    [4X[28X  (1,4,3,2)(5,6,7,8), (1,3)(2,4)(5,7)(6,8) ])[128X[104X
    [4X[25Xgap>[125X [27XIndicesCentralNormalSteps(p);[127X[104X
    [4X[28X[ 1, 2, 4, 5, 6 ][128X[104X
    [4X[25Xgap>[125X [27Xq:=PcgsPCentralSeriesPGroup(g);[127X[104X
    [4X[28XPcgs([ (1,5)(2,6)(3,7)(4,8), (5,6,7,8), (5,7)(6,8), [128X[104X
    [4X[28X  (1,4,3,2)(5,6,7,8), (1,3)(2,4)(5,7)(6,8) ])[128X[104X
    [4X[25Xgap>[125X [27XIndicesPCentralNormalStepsPGroup(q);[127X[104X
    [4X[28X[ 1, 3, 5, 6 ][128X[104X
  [4X[32X[104X
  
  [1X45.11-17 IndicesNormalSteps[101X
  
  [29X[2XIndicesNormalSteps[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  indices of [13Xall[113X steps in the pc series, which are normal in the
  group defined by the pcgs.[133X
  
  [33X[0;0Y(In  general,  this  function  yields  a  slower  performance  than the more
  specialized index functions for elementary abelian series etc.)[133X
  
  [1X45.11-18 NormalSeriesByPcgs[101X
  
  [29X[2XNormalSeriesByPcgs[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  subgroups the pc series, which are normal in the group defined
  by the pcgs.[133X
  
  [33X[0;0Y(In  general,  this  function  yields  a  slower  performance  than the more
  specialized index functions for elementary abelian series etc.)[133X
  
  
  [1X45.12 [33X[0;0YSum and Intersection of Pcgs[133X[101X
  
  [1X45.12-1 SumFactorizationFunctionPcgs[101X
  
  [29X[2XSumFactorizationFunctionPcgs[102X( [3Xparentpcgs[103X, [3Xn[103X, [3Xu[103X, [3Xkerpcgs[103X ) [32X operation
  
  [33X[0;0Ycomputes  the  sum and intersection of the lists [3Xn[103X and [3Xu[103X whose elements form
  modulo pcgs induced by [3Xparentpcgs[103X for two subgroups modulo a kernel given by
  [3Xkerpcgs[103X.  If  [3Xkerpcgs[103X  is a tail if the [3Xparent-pcgs[103X it is sufficient to give
  the starting depth, this can be more efficient than to construct an explicit
  pcgs.  The  factor  group  modulo  [3Xkerpcgs[103X generated by [3Xn[103X must be elementary
  abelian and normal under [3Xu[103X.[133X
  
  [33X[0;0YThe function returns a record with components[133X
  
  [8X[10Xsum[110X[8X[108X
        [33X[0;6Yelements that form a modulo pcgs for the span of both subgroups.[133X
  
  [8X[10Xintersection[110X[8X[108X
        [33X[0;6Yelements  that  form  a  modulo  pcgs  for  the  intersection  of both
        subgroups.[133X
  
  [8X[10Xfactorization[110X[8X[108X
        [33X[0;6Ya  function  that returns for an element [3Xx[103X in the span of [10Xsum[110X a record
        with components [10Xu[110X and [10Xn[110X that give its decomposition.[133X
  
  [33X[0;0YThe record components [10Xsum[110X and [10Xintersection[110X are [13Xnot[113X pcgs but only lists of pc
  elements (to avoid unnecessary creation of induced pcgs).[133X
  
  
  [1X45.13 [33X[0;0YSpecial Pcgs[133X[101X
  
  [33X[0;0YIn  short,  a special pcgs is a pcgs which has particularly nice properties,
  for  example it always refines an elementary abelian series, for [22Xp[122X-groups it
  even  refines  a  central  series. These nice properties permit particularly
  efficient algorithms.[133X
  
  [33X[0;0YLet  [3XG[103X  be a finite polycyclic group. A [13Xspecial pcgs[113X of [3XG[103X is a pcgs which is
  closely  related to a Hall system and the maximal subgroups of [3XG[103X. These pcgs
  have  been  introduced  by C. R. Leedham-Green who also gave an algorithm to
  compute  them. Improvements to this algorithm are due to Bettina Eick. For a
  more detailed account of their definition the reader is referred to [Eic97][133X
  
  [33X[0;0YTo  introduce  the  definition  of  special pcgs we first need to define the
  [13XLG-series[113X and [13Xhead complements[113X of a finite polycyclic group [3XG[103X. Let [22XG = G_1 >
  G_2 > ... G_m > G_{m+1} = { 1 }[122X be the lower nilpotent series of [22XG[122X; that is,
  [22XG_i[122X  is  the  smallest  normal subgroup of [22XG_{i-1}[122X with nilpotent factor. To
  obtain  the  LG-series  of  [3XG[103X we need to refine this series. Thus consider a
  factor  [22XF_i  := G_i / G_{i+1}[122X. Since [22XF_i[122X is finite nilpotent, it is a direct
  product  of  its  Sylow  subgroups,  say [22XF_i = P_{i,1} ⋯ P_{i,r_i}[122X. For each
  Sylow  [22Xp_j[122X-subgroup [22XP_{i,j}[122X we can consider its lower [22Xp_j[122X-central series. To
  obtain  a  characteristic  central series with elementary abelian factors of
  [22XF_i[122X  we loop over its Sylow subgroups. Each time we consider [22XP_{i,j}[122X in this
  process  we  take  the  next  step  of its lower [22Xp_j[122X-central series into the
  series of [22XF_i[122X. If there is no next step, then we just skip the consideration
  of  [22XP_{i,j}[122X.  Note  that  the second term of the lower [22Xp[122X-central series of a
  [22Xp[122X-group  is in fact its Frattini subgroup. Thus the Frattini subgroup of [22XF_i[122X
  is  contained  in  the computed series of this group. We denote the Frattini
  subgroup of [22XF_i = G_i / G_{i+1}[122X by [22XG_i^* / G_{i+1}[122X.[133X
  
  [33X[0;0YThe  factors  [22XG_i  /  G_i^*[122X  are  called the heads of [22XG[122X, while the (possibly
  trivial)  factors [22XG_i^* / G_{i+1}[122X are the tails of [22XG[122X. A head complement of [22XG[122X
  is  a  subgroup [22XU[122X of [22XG[122X such that [22XU / G_i^*[122X is a complement to the head [22XG_i /
  G_i^*[122X in [22XG / G_i^*[122X for some [22Xi[122X.[133X
  
  [33X[0;0YNow  we are able to define a special pcgs of [3XG[103X. It is a pcgs of [3XG[103X with three
  additional  properties.  First, the pc series determined by the pcgs refines
  the  LG-series  of  [3XG[103X.  Second, a special pcgs [13Xexhibits[113X a Hall system of the
  group  [3XG[103X;  that  is,  for each set of primes [22Xπ[122X the elements of the pcgs with
  relative  order in [22Xπ[122X form a pcgs of a Hall [22Xπ[122X-subgroup in a Hall system of [3XG[103X.
  Third, a special pcgs exhibits a head complement for each head of [3XG[103X.[133X
  
  [33X[0;0YTo  record  information  about the LG-series with the special pcgs we define
  the [13XLGWeights[113X of the special pcgs. These weights are a list which contains a
  weight [22Xw[122X for each elements [22Xg[122X of the special pcgs. Such a weight [22Xw[122X represents
  the smallest subgroup of the LG-series containing [22Xg[122X.[133X
  
  [33X[0;0YSince the LG-series is defined in terms of the lower nilpotent series, Sylow
  subgroups  of  the factors and lower [22Xp[122X-central series of the Sylow subgroup,
  the  weight [22Xw[122X is a triple. More precisely, [22Xg[122X is contained in the [22Xw[1][122Xth term
  [22XU[122X  of  the  lower  nilpotent series of [3XG[103X, but not in the next smaller one [22XV[122X.
  Then  [22Xw[3][122X  is a prime such that [22Xg V[122X is contained in the Sylow [22Xw[3][122X-subgroup
  [22XP/V[122X  of  [22XU/V[122X.  Moreover,  [22XgV[122X  is  contained  in the [22Xw[2][122Xth term of the lower
  [22Xp[122X-central series of [22XP/V[122X.[133X
  
  [33X[0;0YThere are two more attributes of a special pcgs containing information about
  the  LG-series:  the  list [13XLGLayers[113X and the list [13XLGFirst[113X. The list of layers
  corresponds to the elements of the special pcgs and denotes the layer of the
  LG-series  in  which  an  element  lies. The list LGFirst corresponds to the
  LG-series  and  gives the number of the first element in the special pcgs of
  the corresponding subgroup.[133X
  
  [1X45.13-1 IsSpecialPcgs[101X
  
  [29X[2XIsSpecialPcgs[102X( [3Xobj[103X ) [32X property
  
  [33X[0;0Ytests whether [3Xobj[103X is a special pcgs.[133X
  
  
  [1X45.13-2 [33X[0;0YSpecialPcgs[133X[101X
  
  [29X[2XSpecialPcgs[102X( [3Xpcgs[103X ) [32X attribute
  [29X[2XSpecialPcgs[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Ycomputes a special pcgs for the group defined by [3Xpcgs[103X or for [3XG[103X.[133X
  
  [1X45.13-3 LGWeights[101X
  
  [29X[2XLGWeights[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns the LGWeights of the special pcgs [3Xpcgs[103X.[133X
  
  [1X45.13-4 LGLayers[101X
  
  [29X[2XLGLayers[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns the layers of the special pcgs [3Xpcgs[103X.[133X
  
  [1X45.13-5 LGFirst[101X
  
  [29X[2XLGFirst[102X( [3Xpcgs[103X ) [32X attribute
  
  [33X[0;0Yreturns the first indices for each layer of the special pcgs [3Xpcgs[103X.[133X
  
  [1X45.13-6 LGLength[101X
  
  [29X[2XLGLength[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Yreturns  the  length  of the LG-series of the group [3XG[103X, if [3XG[103X is solvable, and
  [9Xfail[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := SmallGroup( 96, 220 );[127X[104X
    [4X[28X<pc group of size 96 with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27Xspec := SpecialPcgs( G );[127X[104X
    [4X[28XPcgs([ f1, f2, f3, f4, f5, f6 ])[128X[104X
    [4X[25Xgap>[125X [27XLGWeights(spec);[127X[104X
    [4X[28X[ [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 3 ], [128X[104X
    [4X[28X  [ 1, 2, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XLGLayers(spec);[127X[104X
    [4X[28X[ 1, 1, 1, 1, 2, 3 ][128X[104X
    [4X[25Xgap>[125X [27XLGFirst(spec);[127X[104X
    [4X[28X[ 1, 5, 6, 7 ][128X[104X
    [4X[25Xgap>[125X [27XLGLength( G );[127X[104X
    [4X[28X3[128X[104X
    [4X[25Xgap>[125X [27Xp := SpecialPcgs( Pcgs( SmallGroup( 96, 120 ) ) );[127X[104X
    [4X[28XPcgs([ f1, f2, f3, f4, f5, f6 ])[128X[104X
    [4X[25Xgap>[125X [27XLGWeights(p);[127X[104X
    [4X[28X[ [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 2, 2 ], [ 1, 3, 2 ], [128X[104X
    [4X[28X  [ 2, 1, 3 ] ][128X[104X
  [4X[32X[104X
  
  [33X[0;0YThus  the  first group, [10XSmallGroup(96, 220)[110X, has a lower nilpotent series of
  length  [22X1[122X;  that  is,  the group is nilpotent. It is a direct product of its
  Sylow  subgroups. Moreover the Sylow [22X2[122X-subgroup is generated by the elements
  [10Xf1,  f2,  f3, f4, f6[110X, and the Sylow [22X3[122X-subgroup is generated by [10Xf5[110X. The lower
  [22X2[122X-central  series  of  the  Sylow  [22X2[122X-subgroup  has  length  [22X2[122X and the second
  subgroup in this series is generated by [10Xf6[110X.[133X
  
  [33X[0;0YThe  second  group,  [10XSmallGroup(96,  120)[110X,  has  a lower nilpotent series of
  length  [22X2[122X  and hence is not nilpotent. The second subgroup in this series is
  just  the Sylow [22X3[122X-subgroup and it is generated by [10Xf6[110X. The subgroup generated
  by [10Xf1[110X, [22X...[122X, [10Xf5[110X is a Sylow [22X2[122X-subgroup of the group and also a head complement
  to the second head of the group. Its lower [22X2[122X-central series has length [22X2[122X.[133X
  
  [33X[0;0YIn  this  example  the  [2XFamilyPcgs[102X  ([14X46.1-1[114X)  value of the groups used was a
  special  pcgs, but this is not necessarily the case. For performance reasons
  it can be worth to enforce this, see [2XIsomorphismSpecialPcGroup[102X ([14X46.5-3[114X).[133X
  
  [1X45.13-7 IsInducedPcgsWrtSpecialPcgs[101X
  
  [29X[2XIsInducedPcgsWrtSpecialPcgs[102X( [3Xpcgs[103X ) [32X property
  
  [33X[0;0Ytests whether [3Xpcgs[103X is induced with respect to a special pcgs.[133X
  
  [1X45.13-8 InducedPcgsWrtSpecialPcgs[101X
  
  [29X[2XInducedPcgsWrtSpecialPcgs[102X( [3XG[103X ) [32X attribute
  
  [33X[0;0Ycomputes  an  induced pcgs with respect to the special pcgs of the parent of
  [3XG[103X.[133X
  
  [33X[0;0Y[2XInducedPcgsWrtSpecialPcgs[102X  will  return  a  pcgs  induced  by [13Xa[113X special pcgs
  (which  might  differ  from the one you had in mind). If you need an induced
  pcgs  compatible with a [13Xgiven[113X special pcgs use [2XInducedPcgs[102X ([14X45.7-4[114X) for this
  special pcgs.[133X
  
  
  [1X45.14 [33X[0;0YAction on Subfactors Defined by a Pcgs[133X[101X
  
  [33X[0;0YWhen  working  with  a  polycyclic  group, one often needs to compute matrix
  operations of the group on a factor of the group. For this purpose there are
  the functions described in [14X45.14-1[114X to [14X45.14-3[114X.[133X
  
  [33X[0;0YIn  certain  situations,  for  example  within  the computation of conjugacy
  classes  of  finite soluble groups as described in [MN89], affine actions of
  groups   are   required.   For  this  purpose  we  introduce  the  functions
  [2XAffineAction[102X ([14X45.14-4[114X) and [2XAffineActionLayer[102X ([14X45.14-5[114X).[133X
  
  [1X45.14-1 VectorSpaceByPcgsOfElementaryAbelianGroup[101X
  
  [29X[2XVectorSpaceByPcgsOfElementaryAbelianGroup[102X( [3Xmpcgs[103X, [3Xfld[103X ) [32X function
  
  [33X[0;0Yreturns  the  vector  space over [3Xfld[103X corresponding to the modulo pcgs [3Xmpcgs[103X.
  Note  that  [3Xmpcgs[103X has to define an elementary abelian [22Xp[122X-group where [22Xp[122X is the
  characteristic of [3Xfld[103X.[133X
  
  [1X45.14-2 LinearAction[101X
  
  [29X[2XLinearAction[102X( [3Xgens[103X, [3Xbasisvectors[103X, [3Xlinear[103X ) [32X operation
  [29X[2XLinearOperation[102X( [3Xgens[103X, [3Xbasisvectors[103X, [3Xlinear[103X ) [32X operation
  
  [33X[0;0Yreturns  a list of matrices, one for each element of [3Xgens[103X, which corresponds
  to  the  matrix action of the elements in [3Xgens[103X on the basis [3Xbasisvectors[103X via
  [3Xlinear[103X.[133X
  
  [1X45.14-3 LinearActionLayer[101X
  
  [29X[2XLinearActionLayer[102X( [3XG[103X, [3Xgens[103X, [3Xpcgs[103X ) [32X function
  [29X[2XLinearOperationLayer[102X( [3XG[103X, [3Xgens[103X, [3Xpcgs[103X ) [32X function
  
  [33X[0;0Yreturns  a list of matrices, one for each element of [3Xgens[103X, which corresponds
  to  the  matrix  action of [3XG[103X on the vector space corresponding to the modulo
  pcgs [3Xpcgs[103X.[133X
  
  [1X45.14-4 AffineAction[101X
  
  [29X[2XAffineAction[102X( [3Xgens[103X, [3Xbasisvectors[103X, [3Xlinear[103X, [3Xtransl[103X ) [32X operation
  
  [33X[0;0Yreturn  a  list of matrices, one for each element of [3Xgens[103X, which corresponds
  to  the  affine action of the elements in [3Xgens[103X on the basis [3Xbasisvectors[103X via
  [3Xlinear[103X with translation [3Xtransl[103X.[133X
  
  [1X45.14-5 AffineActionLayer[101X
  
  [29X[2XAffineActionLayer[102X( [3XG[103X, [3Xgens[103X, [3Xpcgs[103X, [3Xtransl[103X ) [32X function
  
  [33X[0;0Yreturns  a list of matrices, one for each element of [3Xgens[103X, which corresponds
  to  the  affine  action of [3XG[103X on the vector space corresponding to the modulo
  pcgs [3Xpcgs[103X with translation [3Xtransl[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG := SmallGroup( 96, 51 );[127X[104X
    [4X[28X<pc group of size 96 with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27Xspec := SpecialPcgs( G );[127X[104X
    [4X[28XPcgs([ f1, f2, f3, f4, f5, f6 ])[128X[104X
    [4X[25Xgap>[125X [27XLGWeights( spec );[127X[104X
    [4X[28X[ [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 3 ], [ 1, 2, 2 ], [ 1, 2, 2 ], [128X[104X
    [4X[28X  [ 1, 3, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27Xmpcgs := InducedPcgsByPcSequence( spec, spec{[4,5,6]} );[127X[104X
    [4X[28XPcgs([ f4, f5, f6 ])[128X[104X
    [4X[25Xgap>[125X [27Xnpcgs := InducedPcgsByPcSequence( spec, spec{[6]} );[127X[104X
    [4X[28XPcgs([ f6 ])[128X[104X
    [4X[25Xgap>[125X [27Xmodu := mpcgs mod npcgs;[127X[104X
    [4X[28X[ f4, f5 ][128X[104X
    [4X[25Xgap>[125X [27Xmat:=LinearActionLayer( G, spec{[1,2,3]}, modu );[127X[104X
    [4X[28X[ <an immutable 2x2 matrix over GF2>, [128X[104X
    [4X[28X  <an immutable 2x2 matrix over GF2>, [128X[104X
    [4X[28X  <an immutable 2x2 matrix over GF2> ][128X[104X
    [4X[25Xgap>[125X [27XPrint( mat, "\n" );[127X[104X
    [4X[28X[ [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ], [128X[104X
    [4X[28X  [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ], [128X[104X
    [4X[28X  [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ] ][128X[104X
  [4X[32X[104X
  
  
  [1X45.15 [33X[0;0YOrbit Stabilizer Methods for Polycyclic Groups[133X[101X
  
  [33X[0;0YIf  a  pcgs  [3Xpcgs[103X is known for a group [3XG[103X, then orbits and stabilizers can be
  computed  by  a  special  method  which is particularly efficient. Note that
  within  this  function  only the elements in [3Xpcgs[103X and the relative orders of
  [3Xpcgs[103X  are  needed.  Hence  this  function  works  effectively  even  if  the
  elementary operations for [3Xpcgs[103X are slow.[133X
  
  [1X45.15-1 StabilizerPcgs[101X
  
  [29X[2XStabilizerPcgs[102X( [3Xpcgs[103X, [3Xpnt[103X[, [3Xacts[103X][, [3Xact[103X] ) [32X function
  
  [33X[0;0Ycomputes  the stabilizer in the group generated by [3Xpcgs[103X of the point [3Xpnt[103X. If
  given,  [3Xacts[103X  are  elements  by which [3Xpcgs[103X acts, [3Xact[103X is the acting function.
  This  function  returns  a  pcgs  for the stabilizer which is induced by the
  [10XParentPcgs[110X of [3Xpcgs[103X, that is it is compatible with [3Xpcgs[103X.[133X
  
  [1X45.15-2 Pcgs_OrbitStabilizer[101X
  
  [29X[2XPcgs_OrbitStabilizer[102X( [3Xpcgs[103X, [3Xdomain[103X, [3Xpnt[103X, [3Xoprs[103X, [3Xopr[103X ) [32X function
  
  [33X[0;0Yruns a solvable group orbit-stabilizer algorithm on [3Xpnt[103X with [3Xpcgs[103X acting via
  the  images  [3Xoprs[103X  and  the operation function [3Xopr[103X. The domain [3Xdomain[103X can be
  used to speed up search, if it is not known, [9Xfalse[109X can be given instead. The
  function  returns  a record with components [10Xorbit[110X, [10Xstabpcgs[110X and [10Xlengths[110X, the
  latter  indicating  the  lengths of the orbit whenever it got extended. This
  can  be used to recompute transversal elements. This function should be used
  only inside algorithms when speed is essential.[133X
  
  
  [1X45.16 [33X[0;0YOperations which have Special Methods for Groups with Pcgs[133X[101X
  
  [33X[0;0YFor  the following operations there are special methods for groups with pcgs
  installed:[133X
  
  [33X[0;0Y[2XIsNilpotentGroup[102X  ([14X39.15-3[114X),  [2XIsSupersolvableGroup[102X ([14X39.15-8[114X), [2XSize[102X ([14X30.4-6[114X),
  [2XCompositionSeries[102X   ([14X39.17-5[114X),   [2XConjugacyClasses[102X   ([14X39.10-2[114X),   [2XCentralizer[102X
  ([14X35.4-4[114X),   [2XFrattiniSubgroup[102X   ([14X39.12-6[114X),   [2XPrefrattiniSubgroup[102X   ([14X39.12-7[114X),
  [2XMaximalSubgroups[102X  ([14X39.19-7[114X) and related operations, [2XHallSystem[102X ([14X39.13-6[114X) and
  related   operations,   [2XMinimalGeneratingSet[102X   ([14X39.22-3[114X),  [2XCentre[102X  ([14X35.4-5[114X),
  [2XIntersection[102X   ([14X30.5-2[114X),   [2XAutomorphismGroup[102X   ([14X40.7-1[114X),  [2XIrreducibleModules[102X
  ([14X71.15-1[114X).[133X
  
  
  [1X45.17 [33X[0;0YConjugacy Classes in Solvable Groups[133X[101X
  
  [33X[0;0YThere  are  a  variety  of  algorithms  to  compute  conjugacy  classes  and
  centralizers  in  solvable  groups  via  epimorphic  images ([FN79], [MN89],
  [The93]).  Usually  these are only invoked as methods, but it is possible to
  access the algorithm directly.[133X
  
  [1X45.17-1 ClassesSolvableGroup[101X
  
  [29X[2XClassesSolvableGroup[102X( [3XG[103X, [3Xmode[103X[, [3Xopt[103X] ) [32X function
  
  [33X[0;0Ycomputes  conjugacy  classes  and  centralizers in solvable groups. [3XG[103X is the
  acting group. [3Xmode[103X indicates the type of the calculation:[133X
  
  [33X[0;0Y0 Conjugacy classes[133X
  
  [33X[0;0Y4 Conjugacy test for the two elements in [3Xopt[103X[10X.candidates[110X[133X
  
  [33X[0;0YIn  mode  0  the  function  returns  a list of records containing components
  [3Xrepresentative[103X and [3Xcentralizer[103X. In mode 4 it returns a conjugating element.[133X
  
  [33X[0;0YThe  optional  record  [3Xopt[103X  may  contain  the following components that will
  affect the algorithm's behaviour:[133X
  
  [8X[10Xpcgs[110X[8X[108X
        [33X[0;6Yis  a  pcgs  that  will  be  used  for  the calculation. The attribute
        [2XEANormalSeriesByPcgs[102X  ([14X45.11-4[114X)  must  return an appropriate series of
        normal  subgroups  with  elementary  abelian  factors  among them. The
        algorithm  will  step down this series. In the case of the calculation
        of rational classes, it must be a pcgs refining a central series.[133X
  
  [8X[10Xcandidates[110X[8X[108X
        [33X[0;6Yis  a  list  of elements for which canonical representatives are to be
        computed  or  for  which  a  conjugacy test is performed. They must be
        given  in  mode  4.  In  mode  0  a  list  of classes corresponding to
        [10Xcandidates[110X   is   returned   (which   may   contain  duplicates).  The
        [10Xrepresentative[110Xs chosen are canonical with respect to [10Xpcgs[110X. The records
        returned  also  contain  components  [10Xoperator[110X  such  that  [10Xcandidate ^
        operator = representative[110X.[133X
  
  [8X[10Xconsider[110X[8X[108X
        [33X[0;6Yis a function [10Xconsider( fhome, rep, cenp, K, L )[110X. Here [10Xfhome[110X is a home
        pcgs  for  the factor group [22XF[122X in which the calculation currently takes
        place,  [10Xrep[110X  is  an  element  of the factor and [10Xcenp[110X is a pcgs for the
        centralizer  of  [10Xrep[110X modulo [10XK[110X. In mode 0, when lifting from [22XF[122X/[10XK[110X to [22XF[122X/[10XL[110X
        (note: for efficiency reasons, [22XF[122X can be different from [3XG[103X or [10XL[110X might be
        not  trivial)  this  function  is  called before performing the actual
        lifting  and  only those representatives for which it returns [9Xtrue[109X are
        passed  to the next level. This permits for example the calculation of
        only  those  classes  with small centralizers or classes of restricted
        orders.[133X
  
  [1X45.17-2 CentralizerSizeLimitConsiderFunction[101X
  
  [29X[2XCentralizerSizeLimitConsiderFunction[102X( [3Xsz[103X ) [32X function
  
  [33X[0;0Yreturns  a  function (with arguments [10Xfhome[110X, [10Xrep[110X, [10Xcen[110X, [10XK[110X, [10XL[110X) that can be used
  in  [2XClassesSolvableGroup[102X  ([14X45.17-1[114X) as the [10Xconsider[110X component of the options
  record. It will restrict the lifting to those classes, for which the size of
  the centralizer (in the factor) is at most [3Xsz[103X.[133X
  
  [33X[0;0YSee also [2XSubgroupsSolvableGroup[102X ([14X39.21-3[114X).[133X
  
