Normal and Subnormal Subgroups

Contents

Characteristic Subgroups and Normal Series

DerivedSeries(G) : GrpPerm -> [ GrpPerm ]
The derived series of the group G. The series is returned as a sequence of subgroups. The algorithm used is described in [BC82].
CompositionSeries(G) : GrpPerm -> [ GrpPerm ]
A composition series of the group G, ie. a descending chain of normal subgroups, such that each quotient is a simple group. The series is returned as a sequence of subgroups.
CommutatorSubgroup(G) : GrpPerm -> GrpPerm
DerivedSubgroup(G) : GrpPerm -> GrpPerm
DerivedGroup(G) : GrpPerm -> GrpPerm
The derived subgroup of the group G.
SolubleResidual(G) : GrpPerm -> GrpPerm
SolvableResidual(G) : GrpPerm -> GrpPerm
The solvable residual (the last term of the derived series) of the group G.
DerivedLength(G) : GrpPerm -> RngIntElt
The derived length of G. If G is non-soluble, the function returns the number of terms in the series terminating with the soluble residual.
LowerCentralSeries(G) : GrpPerm -> [ GrpPerm ]
The lower central series of G. The series is returned as a sequence of subgroups, the first of which is the group G. The algorithm used is described in [BC82].
NilpotencyClass(G) : GrpPerm -> RngIntElt
The nilpotency class of the group G. If the group is not nilpotent, the value -1 is returned.
UpperCentralSeries(G) : GrpPerm -> [ GrpPerm ]
The upper central series of G. The series is returned as a sequence of subgroups commencing with the trivial subgroup. The algorithm used is to compute the centre of G and then section centralisers (see [Luk93]) up the chain. This requires computing cores of subgroups, so this function is more restricted in its range of application than DerivedSeries and LowerCentralSeries.
Centre(G) : GrpPerm -> GrpPerm
Center(G) : GrpPerm -> GrpPerm
Construct the centre of the group G. The centre is found by applying the function CentralizerOfNormalSubgroup to G in G.
Hypercentre(G) : GrpPerm -> GrpPerm
Hypercenter(G) : GrpPerm -> GrpPerm
Construct the hypercentre of the group G (the stationary term of the upper central series).
pCore(G, p) : GrpPerm, RngIntElt -> GrpPerm
Given a group G and a prime p, construct the maximal normal p-subgroup of G. The algorithm employed is described in Unger [Ung06b].
pCoreQuotient(G, p) : GrpPerm, RngIntElt -> GrpPerm, Map, GrpPerm
Given a group G and a prime p, construct the quotient of G by K := pCore(G, p). The return values are the quotient, Q, represented as a permutation group of the same degree as G, the quotient map from G onto Q, and K.
FittingGroup(G) : GrpPerm -> GrpPerm
FittingSubgroup(G) : GrpPerm -> GrpPerm
The Fitting subgroup of the group G. It is computed as the product of the p-cores of the radical of G.
FrattiniSubgroup(G) : GrpPerm -> GrpPerm
Given a group G, return the Frattini subgroup. For p-groups this is computed as the derived group with pth powers of the generators added. Solvable groups are converted to their GrpPC representation and the problem solved there. Non-solvable groups are treated by finding their maximal subgroups and forming the intersection, so are subject to the same restrictions as the MaximalSubgroups command.
JenningsSeries(G) : GrpPerm -> [ GrpPerm ]
Given a p-group G, return the Jennings series for G. The series is returned as a sequence of subgroups.
pCentralSeries(G, p) : GrpPerm, RngIntElt -> [ GrpPerm ]
Given a soluble group G, and a prime p dividing |G|, return the lower p-central series for G. The series is returned as a sequence of subgroups.
SubnormalSeries(G, H) : GrpPerm, GrpPerm -> [ GrpPerm ]
Given a group G and a subnormal subgroup H of G, return a sequence of subgroups commencing with G and terminating with H, such that each subgroup is normal in the previous one. If H is not subnormal in G, the empty sequence is returned.

Example GrpPerm_Series (H64E30)

We compute the various series in the wreath product of the symmetric group of degree 4 with the dihedral group of order 8 (a soluble group).
> G := WreathProduct(Sym(4), DihedralGroup(4));
> G;
Permutation group G acting on a set of cardinality 16
    (1, 5, 9, 13)(2, 6, 10, 14)(3, 7, 11, 15)(4, 8, 12, 16)
    (1, 13)(2, 14)(3, 15)(4, 16)(5, 9)(6, 10)(7, 11)(8, 12)
    (1, 2, 3, 4)
    (1, 2)
> [ FactoredOrder(H) : H in DerivedSeries(G) ];
[
    [ <2, 15>, <3, 4> ],
    [ <2, 12>, <3, 4> ],
    [ <2, 9>, <3, 4> ],
    [ <2, 8>, <3, 4> ],
    [ <2, 8> ],
    []
]
> DerivedLength(G);
5
> [ FactoredOrder(H) : H in LowerCentralSeries(G) ];
[
    [ <2, 15>, <3, 4> ],
    [ <2, 12>, <3, 4> ],
    [ <2, 10>, <3, 4> ],
    [ <2, 9>, <3, 4> ],
    [ <2, 8>, <3, 4> ]
]
> NilpotencyClass(G);
-1
> Centre(G);
Permutation group acting on a set of cardinality 16
Order = 1
    Id($)
> pCentralSeries(G, 2);
[
    [ <2, 15>, <3, 4> ],
    [ <2, 12>, <3, 4> ],
    [ <2, 10>, <3, 4> ],
    [ <2, 9>, <3, 4> ],
    [ <2, 8>, <3, 4> ]
]
> [ FactoredOrder(H) : H in pCentralSeries(G, 3) ];
[
    [ <2, 15>, <3, 4> ]
]

Maximal and Minimal Normal Subgroups

MaximalNormalSubgroup(G) : GrpPerm -> GrpPerm
A maximal normal subgroup of G. The trivial subgroup is returned if G is simple. The algorithm takes homomorphic reductions to a primitive group and then uses O'Nan-Scott type considerations to get its result.
MinimalNormalSubgroups(G) : GrpPerm -> [ GrpPerm ]
The minimal normal subgroups of G. These are obtained by first computing the socle of G and then splitting off the normal factors.

Lattice of Normal Subgroups

NormalSubgroups(G) : GrpPerm -> [ Rec ]
The normal subgroups of G. These are determined by the method of Cannon and Souvignier [CS].
NormalLattice(G) : GrpPerm -> SubGrpLat
The normal subgroup lattice of G. The subgroups are first found using the same algorithm as the function NormalSubgroups and then inclusions are determined.

Example GrpPerm_NormalSubgroups (H64E31)

We determine all normal subgroups of the wreath product of Sym(8) and the dihedral group of order 8.
> G := WreathProduct(Sym(8), DihedralGroup(4));
> Order(G);
21143266346926080000
> time N := NormalSubgroups(G);
Time: 1.050
> #N;
29
> [ < Order(H`subgroup), FactoredOrder(H`subgroup) > : H in N ];
[
    <1, []>,
    <165181768335360000, [ <2, 24>, <3, 8>, <5, 4>, <7, 4> ]>,
    <330363536670720000, [ <2, 25>, <3, 8>, <5, 4>, <7, 4> ]>,
    <660727073341440000, [ <2, 26>, <3, 8>, <5, 4>, <7, 4> ]>,
    <1321454146682880000, [ <2, 27>, <3, 8>, <5, 4>, <7, 4> ]>,
    <1321454146682880000, [ <2, 27>, <3, 8>, <5, 4>, <7, 4> ]>,
    <1321454146682880000, [ <2, 27>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <2642908293365760000, [ <2, 28>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <5285816586731520000, [ <2, 29>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <10571633173463040000, [ <2, 30>, <3, 8>, <5, 4>, <7, 4> ]>,
    <21143266346926080000, [ <2, 31>, <3, 8>, <5, 4>, <7, 4> ]>
]

Composition and Chief Series

ChiefFactors(G) : GrpPerm -> [ <RngIntElt, RngIntElt, RngIntElt, RngIntElt> ]
Given a group G, return a sequence of the isomorphism types <f, d, q, m> of the chief factors. An isomorphism type in a chief factor should be understood as the direct product of m copies of the simple group described by <f, d, q> (see CompositionFactors below). For the algorithm, see Unger [Ung].
ChiefSeries(G) : GrpPerm -> [ GrpPerm ], [ <RngIntElt, RngIntElt, RngIntElt, RngIntElt> ]
Given a group G, return the chief series of G and a sequence of the corresponding isomorphism types <f, d, q, m> of the chief factors. An isomorphism type in a chief factor should be understood as the direct product of m copies of the simple group described by <f, d, q> (see CompositionFactors below). The series will be organised to include the soluble radical of G, and, if G is insoluble, the socle of the quotient of G by the soluble radical.
CompositionFactors(G) : GrpPerm -> [ <RngIntElt, RngIntElt, RngIntElt> ]
Given a permutation group G, return a sequence S of tuples that represent the composition factors of G, ordered according to some composition series of G. Each tuple is a triple of integers f, d, q that defines the isomorphism type of the corresponding composition factor. A triple < f, d, q > describes a simple group as follows. The integer f defines the family to which the group belongs, and d and q are the parameters of the family. The length of the sequence S is the number of composition factors of G. The algorithm used is the "tabular" algorithm of Kantor [Kan91], extended to be valid for groups of degree ≤230.
The families are:
    f      family name
-------------------------
    1       A(d, q)
    2       B(d, q)
    3       C(d, q)
    4       D(d, q)
    5       G(2, q)
    6       F(4, q)
    7       E(6, q)
    8       E(7, q)
    9       E(8, q)
   10       2A(d, q)
   11       2B(2, q)
   12       2D(d, q)
   13       3D(4, q)
   14       2G(2, q)
   15       2F(4, q)
   16       2E(6, q)
   17       Alternating(d)
   18       Sporadic group --- see next list
   19       Cyclic(q)
For f=18, the sporadic groups are:
    d      group name
-------------------------
    1      M_11
    2      M_12
    3      M_22
    4      M_23
    5      M_24
    6      J_1
    7      HS
    8      J_2
    9      McL
   10      Suz
   11      J_3
   12      Co_1
   13      Co_2
   14      Co_3
   15      He
   16      Fi_22
   17      Fi_23
   18      Fi_24
   19      Ly
   20      Ru
   21      ON
   22      Th
   23      HN
   24      BM
   25      M
   26      J_4

Example GrpPerm_CompFactors (H64E32)

We illustrate the function CompositionFactors by applying it to the group associated with Rubik's cube.
> G := sub<Sym(48) |
>     (1,3,8,6)(2,5,7,4)(9,48,15,12)(10,47,16,13)(11,46,17,14),
>     (6,15,35,26)(7,22,34,19)(8,30,33,11)(12,14,29,27)(13,21,28,20),
>     (1,12,33,41)(4,20,36,44)(6,27,38,46)(9,11,26,24)(10,19,25,18),
>     (1,24,40,17)(2,18,39,23)(3,9,38,32)(41,43,48,46)(42,45,47,44),
>     (3,43,35,14)(5,45,37,21)(8,48,40,29)(15,17,32,30)(16,23,31,22),
>     (24,27,30,43)(25,28,31,42)(26,29,32,41)(33,35,40,38)(34,37,39,36)
>         >;
> FactoredOrder(G);
[ <2, 27>, <3, 14>, <5, 3>, <7, 2>, <11, 1> ]
> CompositionFactors(G);
     G
     |  Cyclic(2)
     *
     |  Alternating(12)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Cyclic(2)
     *
     |  Alternating(8)
     *
     |  Cyclic(3)
     *
     |  Cyclic(3)
     *
     |  Cyclic(3)
     *
     |  Cyclic(3)
     *
     |  Cyclic(3)
     *
     |  Cyclic(3)
     *
     |  Cyclic(3)
     1
PrimaryAbelianInvariants(G) : GrpPerm -> [ RngIntElt ]
AbelianInvariants(G) : GrpPerm -> [ RngIntElt ]
Given an abelian group G, return a sequence Q containing the types of each p-primary component of G. The non-primary form gives the Smith form invariants, i.e. each element of the sequence divides the next.
PrimaryAbelianBasis(G) : GrpPerm -> [ GrpPermElt ], [ RngIntElt ]
AbelianBasis(G) : GrpPerm -> [ GrpPermElt ], [ RngIntElt ]
Given an abelian group G, return sequences B and I where I contains the types of each p-primary component of G and B contains corresponding elements of G which have the order given and generate G. The non-primary form uses the Smith form invariants, i.e. each element of the sequence divides the next.

The Socle

Socle(G) : GrpPerm -> GrpPerm
The socle of the group G. This is computed using the algorithms described in Cannon and Holt [CH97], extended to apply to all degrees up to 230.
SocleFactor(G) : GrpPerm -> GrpPerm
A simple factor of the socle of the group G.
SocleFactors(G) : GrpPerm -> [ GrpPerm ]
The simple factors of the socle of the group G. The index of each factor in the sequence corresponds to the points of the image group of SocleAction and SocleImage.
SocleSeries(G) : GrpPerm -> [ GrpPerm ]
A chain of subgroups S1, S1 x S2, ..., S1 x ... x Sr, where S1, ..., Sr are the simple factors of the socle of the primitive group G.
EARNS(G) : GrpPerm -> GrpPerm
The elementary abelian regular normal subgroup (EARNS) of the primitive group G. If G does not have an EARNS, then the trivial subgroup is returned. The algorithm used is that of Neumann [Neu86].
AffineGeneralLinearGroup(E) : GrpPerm -> GrpPerm
AGL(E) : GrpPerm -> GrpPerm
The affine general linear group of the elementary abelian group E, regarded as a vector space over the field GF(p), where p is the exponent of E.
IsAffine(G) : GrpPerm -> BoolElt, GrpPerm
Decide if the permutation group G is of primitive affine type. If so, the elementary abelian regular normal subgroup of G is returned as second return value. If the group G is either intransitive or transitive and imprimitive or primitive and not of affine type, then the result will be false (only). This function combines IsTransitive, IsPrimitive and EARNS.
AffineAction(G) : GrpPerm -> Hom, GrpPerm, GrpPerm
Given a primitive group G which has a non-trivial elementary abelian regular normal subgroup A, construct the representation of G given by the action of G on elements of the elementary abelian group A. The image is realised as a point-stabilizer in G and the kernel of the action is A. As with the other action functions, AffineAction returns the homomorphism, the image and the kernel of the action.
AffineImage(G) : GrpPerm -> GrpPerm
Given a primitive group G which has an elementary abelian regular normal subgroup A, construct the permutation group that results from the action of G on elements of the elementary abelian group A. This image is realised as a point-stabilizer in G.
AffineKernel(G) : GrpPerm -> GrpPerm
Given a primitive group G which has a non-trivial elementary abelian regular normal subgroup A, construct the kernel of the action of G on elements of the elementary abelian group A. This kernel equals A.
SocleAction(G) : GrpPerm -> Hom, GrpPerm, GrpPerm
Given a non-trivial permutation group G which has trivial Fitting subgroup, construct the permutation representation of G given by the action of G on the simple factors of N. Note that a primitive group has a perfect socle if and only if it has no elementary abelian regular normal subgroup. As with the other action functions, SocleAction returns the homomorphism, the image and the kernel of the action. The socle factor corresponding to point i in the support of the image group is the ith element in the sequence SocleFactors(G).
SocleImage(G) : GrpPerm -> GrpPerm
Given a non-trivial permutation group G which has trivial Fitting subgroup, construct the permutation group L induced by the action of G on the simple factors of N.
SocleKernel(G) : GrpPerm -> GrpPerm
Given a non-trivial permutation group G which has trivial Fitting subgroup, construct the kernel of the action of G on the simple factors of N.
SocleQuotient(G) : GrpPerm -> GrpPerm, Hom, GrpPerm
Given a permutation group G which has trivial Fitting subgroup, construct a permutation representation of G/N. If Ui denote the simple factors of N, then the degree of the result is bounded by ∑i |Out(Ui)| (see Cannon and Souvignier [CS]). Note that a primitive group has a perfect socle if and only if it has no elementary abelian regular normal subgroup. SocleQuotient returns G/N, the quotient homomorphism and the kernel of the map (which is the socle of G).
RefineSection(G, M, N) : GrpPerm, GrpPerm, GrpPerm -> [ GrpPerm ]
Given M, N normal subgroups of G with N < M, return a sequence of G-normal subgroups L1, ..., Lr with N = L0, Li < Li + 1 and Lr = M such that each of the quotients Li + 1/Li is either elementary abelian or a direct product of non-abelian simple groups.

Example GrpPerm_PrimitiveStructure (H64E33)

We examine the normal structure of a primitive group, the primitive-wreath product of Sym(5) and Sym(3) (with product action).
> G := PrimitiveWreathProduct(Sym(5), Sym(3));
> FactoredOrder(G);
[ <2, 10>, <3, 4>, <5, 3> ]
> E := EARNS(G);
> E;
Permutation group E acting on a set of cardinality 125
Order = 1
> DerivedSeries(G);
[
    Permutation group G acting on a set of cardinality 125
    Order = 10368000 = 2^10 * 3^4 * 5^3
    Permutation group acting on a set of cardinality 125
    Order = 2592000 = 2^8 * 3^4 * 5^3,
    Permutation group acting on a set of cardinality 125
    Order = 864000 = 2^8 * 3^3 * 5^3,
    Permutation group S acting on a set of cardinality 125
    Order = 216000 = 2^6 * 3^3 * 5^3
]
> S := Socle(G);
> S;
Permutation group S acting on a set of cardinality 125
Order = 216000 = 2^6 * 3^3 * 5^3
> Q := SocleFactors(G);
> Q;
[
    Permutation group acting on a set of cardinality 125
    Order = 60 = 2^2 * 3 * 5,
    Permutation group acting on a set of cardinality 125
    Order = 60 = 2^2 * 3 * 5,
    Permutation group acting on a set of cardinality 125
    Order = 60 = 2^2 * 3 * 5
]
> R := SocleSeries(G);
> R;
[
    Permutation group acting on a set of cardinality 125
    Order = 60 = 2^2 * 3 * 5,
    Permutation group acting on a set of cardinality 125
    Order = 3600 = 2^4 * 3^2 * 5^2,
    Permutation group acting on a set of cardinality 125
    Order = 216000 = 2^6 * 3^3 * 5^3
]
> SQ := SocleQuotient(G);
> SQ;
Permutation group SQ acting on a set of cardinality 6
Order = 48 = 2^4 * 3
    (1, 2, 3)(4, 5, 6)
    (2, 3)(4, 5)
    Id($)
    (2, 4)

The Soluble Radical and its Quotient

Very efficient algorithms have been developed for computing invariants such as subgroups, normal subgroups and conjugacy classes of elements for soluble groups defined by means of polycyclic presentations. Almost all such algorithms employ a top-down Lifting Strategy. Let P be a quotient-invariant property for a soluble group. In general, an algorithm that constructs the set of elements or subgroups XP(G) satisfying property P for the group G, proceeds as follows: Let G be a non-simple soluble group and let N be a normal subgroup of G. The set XP(G/N) is constructed and its elements are lifted back into G, thereby yielding XP(G). This process is usually iterated with successive normal subgroups N being chosen as the terms of some descending normal series (e.g., an elementary abelian series).

In generalizing this approach to permutation groups, our approach has been to construct the soluble radical R of G, use special methods to solve the problem for the quotient G/R, and then proceed (as in the case of a soluble group) to lift the solution down the successive terms of an elementary abelian series for G using the Lifting Strategy. Derek Holt has shown that the quotient group G/R has a faithful permutation representation of degree no greater than that of G.

The functions in this section enable the user to construct the radical, its quotient and an elementary abelian series.

Radical(G) : GrpPerm -> GrpPerm
SolubleRadical(G) : GrpPerm -> GrpPerm
SolvableRadical(G) : GrpPerm -> GrpPerm
Given a group G, return the maximal normal solvable subgroup of G. The algorithm used is described in Unger [Ung06b].
RadicalQuotient(G) : GrpPerm -> GrpPerm, Hom(GrpPerm), GrpPerm
Given a group G, compute a representation of the quotient G/R where R is the (solvable) radical of G. The resulting representation has the same degree as G. Both the permutation group Q isomorphic to G/R and a homomorphism φ: G -> Q are returned. The algorithm proceeds by repeatedly applying AbelianNormalQuotient up the terms of the derived series of the radical. The third return value is R, the radical of G and the kernel of the homomorphism.
ElementaryAbelianSeries(G: parameters) : GrpPerm -> [ GrpPerm ]
ElementaryAbelianSeries(G, N: parameters) : GrpPerm, GrpPerm -> [ GrpPerm ]
    LayerSizes: SeqEnum[RngIntElt]      Default: []
An elementary abelian series is a chain of normal subgroups R = N1 > N2 > ... > Nr = 1 with the property that the quotient of each pair of successive terms in the series is elementary abelian and that there is no group R < H < G such that H/R is elementary abelian and H normal in G. The top of the series R is called the solvable radical and is the maximal normal solvable subgroup of G.

In the second form N must be a normal subgroup of G and the returned series has the form R = N1 > N2 > ... > Nr = N, so is an elementary abelian series for G/N.

The parameter LayerSizes controls possible refinement of the series. The default is no refinement. As an example, take LayerSizes := [ 2, 5, 3, 4, 7, 3, 11, 2, 17, 1]. When constructing an elementary abelian series for the group, attempt to split 2-layers of size gt 25, 3-layers of size gt 34, etc. The implied exponent for 13 is 2 and for all primes greater than 17 the exponent is 1. Setting LayerSizes to [2, 1] will attempt to split all layers, resulting in a portion of a chief series for G.

ElementaryAbelianSeriesCanonical(G) : GrpPerm -> [ GrpPerm ]
Gives a similar result to using ElementaryAbelianSeries, except the series returned depends only on the isomorphism type of the solvable radical, and consists of characteristic subgroups of G. This function may be slower than ElementaryAbelianSeries.

Example GrpPerm_Radical (H64E34)

We illustrate these functions by considering the group of degree 16 generated by the following permutations:
(1, 8, 11, 3, 6, 14, 15, 10)(2, 7, 12, 4, 5, 13, 16, 9),
(1, 2)(3, 16, 9, 14, 8, 12)(4, 15, 10, 13, 7, 11),
(1, 13, 12, 16)(2, 14, 11, 15)(7, 9)(8, 10).
> G := PermutationGroup< 16 |
>         (1, 8, 11, 3, 6, 14, 15, 10)(2, 7, 12, 4, 5, 13, 16, 9),
>         (1, 2)(3, 16, 9, 14, 8, 12)(4, 15, 10, 13, 7, 11),
>         (1, 13, 12, 16)(2, 14, 11, 15)(7, 9)(8, 10) >;
> Radical(G);
Permutation group acting on a set of cardinality 16
Order = 256 = 2^8
   (3, 4)(5, 6)(7, 8)(13, 14)(15, 16)
   (3, 4)(7, 8)(9, 10)(11, 12)
   (7, 8)(13, 14)
   (1, 2)(7, 8)(9, 10)(11, 12)(13, 14)(15, 16)
   (9, 10)
   (15, 16)
   (11, 12)(15, 16)
   (13, 14)(15, 16)
> RadicalQuotient(G);
Permutation group acting on a set of cardinality 16
Order = 40320 = 2^7 * 3^2 * 5 * 7
   (1, 7, 11, 3, 5, 13, 15, 9)(2, 8, 12, 4, 6, 14, 16, 10)
   (3, 15, 9, 13, 7, 11)(4, 16, 10, 14, 8, 12)
   (1, 13, 11, 15)(2, 14, 12, 16)(7, 9)(8, 10)
Mapping from: GrpPerm: g to GrpPerm: $, Degree 16
> ElementaryAbelianSeries(G);
[
   Permutation group acting on a set of cardinality 16
   Order = 256 = 2^8
       (3, 4)(5, 6)(7, 8)(13, 14)(15, 16)
       (3, 4)(7, 8)(9, 10)(11, 12)
       (7, 8)(13, 14)
       (1, 2)(7, 8)(9, 10)(11, 12)(13, 14)(15, 16)
       (9, 10)
       (15, 16)
       (11, 12)(15, 16)
       (13, 14)(15, 16),
   Permutation group acting on a set of cardinality 16
   Order = 1
]

Complements and Supplements

Complements(G, M) : GrpPerm, GrpPerm -> [ GrpPerm ]
Given a group G and a normal subgroup M, this function returns a sequence containing one representative from each conjugacy class of complements of M in G.
Complements(G, M, N) : GrpPerm, GrpPerm, GrpPerm -> [ GrpPerm ]
Given a group G, a normal subgroup M of G and a normal subgroup N of G, that is strictly contained in M, the function returns a sequence comprising representatives for the conjugacy classes of complements of M/N in G/N, as subgroups of G.

HasComplement(G, M) : GrpPerm, GrpPerm -> BoolElt, GrpPerm
The group M must be a normal subgroup of G. Returns whether M has a complement in G and, if so, one such complement.
Supplements(G, M) : GrpPerm, GrpPerm -> [ GrpPerm ]
Given a group G and a soluble normal subgroup M of G, the function returns a sequence containing one representative from each conjugacy class of minimal supplements for M in G.
Supplements(G, M, N) : GrpPerm, GrpPerm, GrpPerm -> [ GrpPerm ]
Given a group G, a normal subgroup M of G and a normal subgroup N of G such that (a), N is strictly contained in M, and (b), M/N is soluble, the function returns a sequence comprising representatives for the conjugacy classes of minimal supplements of M/N in G/N, as subgroups of G.
HasSupplement(G, M) : GrpPerm, GrpPerm -> BoolElt, GrpPerm
The group M must be a soluble normal subgroup of G. Returns whether M has a proper supplement in G and, if so, one such supplement.

Example GrpPerm_Complements (H64E35)

We illustrate these functions by considering a normal subgroup H of the group G of degree 16 generated by the following permutations:
(1, 3, 2, 4)(5, 16, 6, 13)(7, 14, 8, 15)(9, 12, 11, 10),
(1, 16, 9)(2, 15, 12)(3, 14, 11)(4, 13, 10)(6, 8, 7).
> G := PermutationGroup< 16 |
>         (1, 3, 2, 4)(5, 16, 6, 13)(7, 14, 8, 15)(9, 12, 11, 10),
>         (1, 16, 9)(2, 15, 12)(3, 14, 11)(4, 13, 10)(6, 8, 7) >;
Permutation group G acting on a set of cardinality 16
Order = 165888 = 2^11 * 3^4
    (1, 3, 2, 4)(5, 16, 6, 13)(7, 14, 8, 15)(9, 12, 11, 10)
    (1, 16, 9)(2, 15, 12)(3, 14, 11)(4, 13, 10)(6, 8, 7)
> H := ncl< G | (6, 7, 8)(14, 16, 15) >;
> H;
Permutation group H acting on a set of cardinality 16
Order = 6912 = 2^8 * 3^3
   (6, 7, 8)(14, 16, 15)
   (6, 7, 8)(13, 14, 15)
   (6, 7, 8)(9, 12, 11)
   (5, 8, 7)(13, 14, 15)
   (6, 7, 8)(10, 11, 12)
   (1, 2, 3)(6, 7, 8)
   (2, 4, 3)(6, 7, 8)
> C := Complements(G, H);
> C;
[
   Permutation group acting on a set of cardinality 16
   Order = 24 = 2^3 * 3
       (3, 4)(5, 14)(6, 15)(7, 16)(8, 13)(10, 12)
       (2, 4)(6, 7)(9, 14)(10, 15)(11, 13)(12, 16)
       (1, 14)(2, 15)(3, 16)(4, 13)(7, 8)(10, 11)
       (1, 14, 9)(2, 13, 10)(3, 16, 12)(4, 15, 11)(6, 8, 7)
]

So the normal subgroup has one conjugacy class of complements. We check that the representative subgroup is indeed a complement for H.

> K := C[1];
> IsTrivial(K meet H );
true
> #K * #H eq #G;
true

Abelian Normal Subgroups

AbelianNormalSubgroup(G) : GrpPerm -> GrpPerm
An abelian normal subgroup of G. If none exists, the trivial subgroup is returned.
AbelianNormalQuotient(G, H) : GrpPerm, GrpPerm -> GrpPerm, Hom(GrpPerm), GrpPerm
A quotient of G by an abelian normal subgroup that contains the abelian normal subgroup H. The quotient is represented as a permutation group of the same degree as G. The other values returned are the quotient epimorphism and its kernel K. The kernel K will be abelian, K will contain H, #K and #H will have the same prime divisors, and if H is elementary abelian then so is K.
SolubleNormalQuotient(G, H) : GrpPerm -> GrpPerm, Hom(GrpPerm), GrpPerm
A quotient of G by a soluble normal subgroup that contains the soluble normal subgroup H. The quotient is represented as a permutation group of the same degree as G. The other values returned are the quotient epimorphism and its kernel K. As with AbelianNormalQuotient, K will contain H, and #K and #H will have the same prime divisors.
ElementaryAbelianNormalSubgroup(G) : GrpPerm -> GrpPerm
An elementary abelian normal subgroup of G. If none exists, the trivial subgroup is returned. The group returned is the last non-trivial group in an elementary abelian series for the radical of G.
pElementaryAbelianNormalSubgroup(G, p) : GrpPerm, RngIntElt -> GrpPerm
An elementary abelian normal p-subgroup of G. If none exists, the trivial subgroup is returned. The group returned is the last non-trivial group in an elementary abelian series for the p-core of G.
MEANS(G) : GrpPerm -> GrpPerm
A minimal elementary abelian normal subgroup of G.
MEANS(G, N) : GrpPerm, GrpPerm -> GrpPerm
A minimal elementary abelian normal subgroup of G that lies in the elementary abelian normal subgroup N of G.
V2.28, 13 July 2023