Polycyclic Groups

A group G is polycyclic if there exists a subnormal series G = C_1 > C_2 > \ldots > C_n > C_{{n+1}} = \{ 1 \} with cyclic factors. Such a series is called pc series of G.

Every polycyclic group is solvable and every finite solvable group is polycyclic. However, there are infinite solvable groups which are not polycyclic.

In &GAP; 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 ), and can be applied to many types of groups. Hence &GAP; 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).

At the current state of implementations the &GAP; library contains methods to compute with finite polycyclic groups, while the &GAP; package `Polycyclic` by Bettina Eick and Werner Nickel allows also computations with infinite polycyclic groups which are given by a pc-presentation.

Polycyclic Generating Systems

Let G be a polycyclic group with a pc series as above. A polycyclic generating sequence (pcgs for short) of G is a sequence P := (g_1, \ldots, g_n) of elements of G such that C_i = \langle C_{{i+1}}, g_i \rangle for 1 \leq i \leq n. Note that each polycyclic group has a pcgs, but except for very small groups, a pcgs is not unique.

For each index i the subsequence of elements (g_i, \ldots, g_n) forms a pcgs of the subgroup C_i. In particular, these tails generate the subgroups of the pc series and hence we say that the pc series is determined by P.

Let r_i be the index of C_{{i+1}} in C_i which is either a finite positive number or infinity. Then r_i is the order of g_i C_{{i+1}} and we call the resulting list of indices the relative orders of the pcgs P.

Moreover, with respect to a given pcgs (g_1, \ldots, g_n) each element g of G can be represented in a unique way as a product g = g_1^{{e_1}} \cdot g_2^{{e_2}} \cdots g_n^{{e_n}} with exponents e_i \in \{0, \ldots, r_i-1\}, if r_i is finite, and e_i \in &ZZ; otherwise. Words of this form are called normal words or words in normal form. Then the integer vector [ e_1, \ldots, e_n ] is called the exponent vector of the element g. Furthermore, the smallest index k such that e_k \neq 0 is called the depth of g and e_k is the leading exponent of g.

For many applications we have to assume that each of the relative orders r_i 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 r_i is the order of g C_{{i+1}} for all elements g in C_i \setminus C_{{i+1}} and we call r_i the relative order of the element g.

Computing a Pcgs

Suppose a group G is given; for example, let G be a permutation or matrix group. Then we can ask &GAP; to compute a pcgs of this group. If G is not polycyclic, the result will be fail.

Note that these methods can only be applied if G is not given as finitely presented group. For finitely presented groups one can try to compute a pcgs via the polycyclic quotient methods, see .

Note also that a pcgs behaves like a list.

<#Include Label="Pcgs"> <#Include Label="IsPcgs"> <#Include Label="CanEasilyComputePcgs">

Defining a Pcgs Yourself

In a number of situations it might be useful to supply a pcgs to a group.

Note that the elementary operations for such a pcgs might be rather inefficient, since &GAP; 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 SetRelativeOrder. See also .

<#Include Label="PcgsByPcSequence">

Elementary Operations for a Pcgs
<#Include Label="RelativeOrders:pcgs"> <#Include Label="IsFiniteOrdersPcgs"> <#Include Label="IsPrimeOrdersPcgs"> <#Include Label="PcSeries"> <#Include Label="GroupOfPcgs"> <#Include Label="OneOfPcgs">

Elementary Operations for a Pcgs and an Element
<#Include Label="RelativeOrderOfPcElement"> <#Include Label="ExponentOfPcElement"> <#Include Label="ExponentsOfPcElement"> <#Include Label="DepthOfPcElement"> <#Include Label="LeadingExponentOfPcElement"> <#Include Label="PcElementByExponents"> <#Include Label="LinearCombinationPcgs"> <#Include Label="SiftedPcElement"> <#Include Label="CanonicalPcElement"> <#Include Label="ReducedPcElement"> <#Include Label="CleanedTailPcElement"> <#Include Label="HeadPcElementByNumber">

Exponents of Special Products

There 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.

(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 always be used if applicable.)

The second class are exponents of products of the generators which make up the pcgs. If the pcgs used is a family pcgs (see ) then these exponents can be looked up and do not need to be computed.

<#Include Label="ExponentsConjugateLayer"> <#Include Label="ExponentsOfRelativePower"> <#Include Label="ExponentsOfConjugate"> <#Include Label="ExponentsOfCommutator">

Subgroups of Polycyclic Groups - Induced Pcgs

Let U be a subgroup of G and let P be a pcgs of G as above such that P determines the subnormal series G = C_1 > \ldots > C_{{n+1}} = \{ 1 \}. Then the series of subgroups U \cap C_i is a subnormal series of U with cyclic or trivial factors. Hence, if we choose an element u_{{i_j}} \in (U \cap C_{{i_j}}) \setminus (U \cap C_{{i_j+1}}) whenever this factor is non-trivial, then we obtain a pcgs Q = (u_{{i_1}}, \ldots, u_{{i_m}}) of U. We say that Q is an induced pcgs with respect to P. The pcgs P is the parent pcgs to the induced pcgs Q.

Note that the pcgs Q is induced with respect to P if and only if the matrix of exponent vectors of the elements u_{{i_j}} with respect to P is in upper triangular form. Thus Q is not unique in general.

In particular, the elements of an induced pcgs do not necessarily have leading coefficient 1 relative to the inducing pcgs. The attribute holds the leading coefficients in case they have to be renormed in an algorithm.

Each 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.

An induced pcgs is compatible with its parent, see .

In a non-commutative Gauss algorithm is described to compute an induced pcgs of a subgroup U from a generating set of U. For calling this in &GAP;, see to .

To create a subgroup generated by an induced pcgs such that the induced pcgs gets stored automatically, use .

<#Include Label="IsInducedPcgs"> <#Include Label="InducedPcgsByPcSequence"> <#Include Label="ParentPcgs"> <#Include Label="InducedPcgs"> <#Include Label="InducedPcgsByGenerators"> <#Include Label="InducedPcgsByPcSequenceAndGenerators"> <#Include Label="LeadCoeffsIGS"> <#Include Label="ExtendedPcgs"> <#Include Label="SubgroupByPcgs">

Subgroups of Polycyclic Groups – Canonical Pcgs

The induced pcgs Q of U is called canonical 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 U with respect to P is unique and hence such pcgs can be used to compare subgroups.

<#Include Label="IsCanonicalPcgs"> <#Include Label="CanonicalPcgs">

Factor Groups of Polycyclic Groups – Modulo Pcgs

Let N be a normal subgroup of G such that G/N is polycyclic with pcgs (h_1 N, \ldots, h_r N). Then we call the sequence of preimages (h_1, \ldots h_r) a modulo pcgs of G/N. G is called the numerator of the modulo pcgs and N is the denominator of the modulo pcgs.

Modulo 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.

All elementary operations of pcgs, see Sections and , apply to modulo pcgs as well. However, it is in general not possible to compute induced pcgs with respect to a modulo pcgs.

Two more elementary operations for modulo pcgs are and .

<#Include Label="ModuloPcgs"> <#Include Label="IsModuloPcgs"> <#Include Label="NumeratorOfModuloPcgs"> <#Include Label="DenominatorOfModuloPcgs">

Modulo Pcgs can also be built from compatible induced pcgs. Let G be a group with pcgs P and let I be an induced pcgs of a normal subgroup N of G. (Respectively: P and I are both induced with respect to the same Pcgs.) Then we can compute a modulo pcgs of G mod N by

P mod I

Note that in this case we obtain the advantage that the values of and are just P and I, respectively, and hence are unique.

The resulting modulo pcgs will consist of a subset of P and will be compatible with P (or its parent).

gap> G := Group((1,2,3,4));; gap> P := Pcgs(G); Pcgs([ (1,2,3,4), (1,3)(2,4) ]) gap> I := InducedPcgsByGenerators(P, [(1,3)(2,4)]); Pcgs([ (1,3)(2,4) ]) gap> M := P mod I; [ (1,2,3,4) ] gap> NumeratorOfModuloPcgs(M); Pcgs([ (1,2,3,4), (1,3)(2,4) ]) gap> DenominatorOfModuloPcgs(M); Pcgs([ (1,3)(2,4) ])
<#Include Label="CorrespondingGeneratorsByModuloPcgs"> <#Include Label="CanonicalPcgsByGeneratorsWithImages">

Factor Groups of Polycyclic Groups in their Own Representation

If 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 on a modulo pcgs.

<#Include Label="[1]{pcgs}"> <#Include Label="ProjectedPcElement"> <#Include Label="ProjectedInducedPcgs"> <#Include Label="LiftedPcElement"> <#Include Label="LiftedInducedPcgs">

Pcgs and Normal Series

By 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.

There are functions in &GAP; to compute a pcgs through a normal series with elementary abelian factors, a central series or the lower p-central series. See also Section for a more explicit possibility.

<#Include Label="IsPcgsElementaryAbelianSeries"> <#Include Label="PcgsElementaryAbelianSeries"> <#Include Label="IndicesEANormalSteps"> <#Include Label="EANormalSeriesByPcgs"> <#Include Label="IsPcgsCentralSeries"> <#Include Label="PcgsCentralSeries"> <#Include Label="IndicesCentralNormalSteps"> <#Include Label="CentralNormalSeriesByPcgs"> <#Include Label="IsPcgsPCentralSeriesPGroup"> <#Include Label="PcgsPCentralSeriesPGroup"> <#Include Label="IndicesPCentralNormalStepsPGroup"> <#Include Label="PCentralNormalSeriesByPcgsPGroup"> <#Include Label="IsPcgsChiefSeries"> <#Include Label="PcgsChiefSeries"> <#Include Label="IndicesChiefNormalSteps"> <#Include Label="ChiefNormalSeriesByPcgs"> <#Include Label="IndicesNormalSteps"> <#Include Label="NormalSeriesByPcgs">

Sum and Intersection of Pcgs
<#Include Label="SumFactorizationFunctionPcgs">

Special Pcgs

In short, a special pcgs is a pcgs which has particularly nice properties, for example it always refines an elementary abelian series, for p-groups it even refines a central series. These nice properties permit particularly efficient algorithms.

Let G be a finite polycyclic group. A special pcgs of G is a pcgs which is closely related to a Hall system and the maximal subgroups of G. 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

To introduce the definition of special pcgs we first need to define the LG-series and head complements of a finite polycyclic group G. Let G = G_1 > G_2 > \ldots G_m > G_{{m+1}} = \{ 1 \} be the lower nilpotent series of G; that is, G_i is the smallest normal subgroup of G_{{i-1}} with nilpotent factor. To obtain the LG-series of G we need to refine this series. Thus consider a factor F_i := G_i / G_{{i+1}}. Since F_i is finite nilpotent, it is a direct product of its Sylow subgroups, say F_i = P_{{i,1}} \cdots P_{{i,r_i}}. For each Sylow p_j-subgroup P_{{i,j}} we can consider its lower p_j-central series. To obtain a characteristic central series with elementary abelian factors of F_i we loop over its Sylow subgroups. Each time we consider P_{{i,j}} in this process we take the next step of its lower p_j-central series into the series of F_i. If there is no next step, then we just skip the consideration of P_{{i,j}}. Note that the second term of the lower p-central series of a p-group is in fact its Frattini subgroup. Thus the Frattini subgroup of F_i is contained in the computed series of this group. We denote the Frattini subgroup of F_i = G_i / G_{{i+1}} by G_i^* / G_{{i+1}}.

The factors G_i / G_i^* are called the heads of G, while the (possibly trivial) factors G_i^* / G_{{i+1}} are the tails of G. A head complement of G is a subgroup U of G such that U / G_i^* is a complement to the head G_i / G_i^* in G / G_i^* for some i.

Now we are able to define a special pcgs of G. It is a pcgs of G with three additional properties. First, the pc series determined by the pcgs refines the LG-series of G. Second, a special pcgs exhibits a Hall system of the group G; that is, for each set of primes \pi the elements of the pcgs with relative order in \pi form a pcgs of a Hall \pi-subgroup in a Hall system of G. Third, a special pcgs exhibits a head complement for each head of G.

To record information about the LG-series with the special pcgs we define the LGWeights of the special pcgs. These weights are a list which contains a weight w for each elements g of the special pcgs. Such a weight w represents the smallest subgroup of the LG-series containing g.

Since the LG-series is defined in terms of the lower nilpotent series, Sylow subgroups of the factors and lower p-central series of the Sylow subgroup, the weight w is a triple. More precisely, g is contained in the w[1]th term U of the lower nilpotent series of G, but not in the next smaller one V. Then w[3] is a prime such that g V is contained in the Sylow w[3]-subgroup P/V of U/V. Moreover, gV is contained in the w[2]th term of the lower p-central series of P/V.

There are two more attributes of a special pcgs containing information about the LG-series: the list LGLayers and the list LGFirst. 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.

<#Include Label="IsSpecialPcgs"> <#Include Label="SpecialPcgs"> <#Include Label="LGWeights"> <#Include Label="LGLayers"> <#Include Label="LGFirst"> <#Include Label="LGLength"> <#Include Label="IsInducedPcgsWrtSpecialPcgs"> <#Include Label="InducedPcgsWrtSpecialPcgs">

Action on Subfactors Defined by a Pcgs

When 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 to .

In certain situations, for example within the computation of conjugacy classes of finite soluble groups as described in , affine actions of groups are required. For this purpose we introduce the functions and .

<#Include Label="VectorSpaceByPcgsOfElementaryAbelianGroup"> <#Include Label="LinearAction"> <#Include Label="LinearActionLayer"> <#Include Label="AffineAction"> <#Include Label="AffineActionLayer">

Orbit Stabilizer Methods for Polycyclic Groups

If a pcgs pcgs is known for a group G, then orbits and stabilizers can be computed by a special method which is particularly efficient. Note that within this function only the elements in pcgs and the relative orders of pcgs are needed. Hence this function works effectively even if the elementary operations for pcgs are slow.

<#Include Label="StabilizerPcgs">

<#Include Label="Pcgs_OrbitStabilizer:pcgs">

Operations which have Special Methods for Groups with Pcgs
IsNilpotent
IsSupersolvable
Size
CompositionSeries
ConjugacyClasses
Centralizer
FrattiniSubgroup
PrefrattiniSubgroup
MaximalSubgroups
HallSystem
MinimalGeneratingSet
Centre
Intersection
AutomorphismGroup
IrreducibleModules
For the following operations there are special methods for groups with pcgs installed:

, , , , , , , , and related operations, and related operations, , , , , .

Conjugacy Classes in Solvable Groups

There are a variety of algorithms to compute conjugacy classes and centralizers in solvable groups via epimorphic images (, , ). Usually these are only invoked as methods, but it is possible to access the algorithm directly.

<#Include Label="ClassesSolvableGroup"> <#Include Label="CentralizerSizeLimitConsiderFunction">