Normal Subgroups and Subgroup Series

Contents

Characteristic Subgroups

Centre(G) : GrpPC -> GrpPC
Center(G) : GrpPC -> GrpPC
The centre of the group G.
CommutatorSubgroup(G) : GrpPC -> GrpPC
DerivedSubgroup(G) : GrpPC -> GrpPC
DerivedGroup(G) : GrpPC -> GrpPC
The derived subgroup of the group G.
FittingSubgroup(G) : GrpPC -> GrpPC
FittingGroup(G) : GrpPC -> GrpPC
The Fitting subgroup of the group G.
FrattiniSubgroup(G) : GrpPC -> GrpPC
The Frattini subgroup of the group G.
FrattiniQuotientRank(G) : GrpPC -> GrpPC
The rank of the Frattini quotient of the p-group G.
Hypercentre(G) : GrpPC -> GrpPC
Hypercenter(G) : GrpPC -> GrpPC
The hypercentre of the group G, i.e. the stationary term in the upper central series for G.
MinimalNormalSubgroups(G) : GrpPC -> [GrpPC]
A sequence containing all minimal normal subgroups of G.
pCore(G, S) : GrpPC, { RngIntElt } -> GrpPC
pCore(G, S) : GrpPC, RngIntElt -> GrpPC
The maximal normal π-subgroup of G, Oπ(G), where π is defined by S. The argument S may be a set of primes, a single prime, or the negation of a single prime. If S = - p, then Op'(G) is returned.
Socle(G) : GrpPC -> GrpPC
The socle of G.

Subgroup Series

PrimaryAbelianBasis(G) : GrpPC -> [ GrpPCElt ], [ RngIntElt ]
AbelianBasis(G) : GrpPC -> [ GrpPCElt ], [ RngIntElt ]
Given an abelian group G, return sequences B and I such that (order)(B[i]) = I[i] and < B > = G and the terms of I give the types of each p-primary component of G. The non-primary form uses the Smith form invariants, i.e. each element of the sequence divides the next.
PrimaryAbelianInvariants(G) : GrpPC -> [RngIntElt]
AbelianInvariants(G) : GrpPC -> [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.
ChiefSeries(G) : GrpPC -> [GrpPC]
A chief series for the group G. The series is returned as a sequence of subgroups of G.
CompositionSeries(G) : GrpPC -> [GrpPC]
A composition series for the group G. The series is returned as a sequence of subgroups of G. The i-th term of the composition series has a presentation given by the generators G.i through G.NPCgens(G) and relations involving those generators only.
CompositionFactors(G) : GrpPC -> SeqEnum
A sequence of integer tuples that describe the composition factors, ordered according to some composition series for the group G. Since each factor will be a cyclic group of prime order, the tuples will each be of the form <19, 0, q> representing the cyclic group of order q. The sequence has a custom print routine.
CompositionSeries(G, i) : GrpPC, RngIntElt -> [GrpPC]
The i + 1-th entry of the composition series for the group G. Its presentation is given by the generators G.(i+1) through G.m, where m is the number of pc-generators of G and relations involving these generators only.
DerivedSeries(G) : GrpPC -> [GrpPC]
The derived series of the group G. The series is returned as a sequence of subgroups.
DerivedLength(G) : GrpPC -> RngIntElt
The derived length of the group G.
ElementaryAbelianSeries(G) : GrpPC -> [GrpPC]
An elementary abelian series is a chain of normal subgroups with the property that the quotient of each pair of successive terms in the series is elementary abelian. The elementary abelian series for the group G is returned as a sequence of subgroups.
ElementaryAbelianSeriesCanonical(G) : GrpPC -> [GrpPC]
Gives a similar result to using ElementaryAbelianSeries, except the series returned depends only on the isomorphism type of the group, and consists of characteristic subgroups. This function may be slower than ElementaryAbelianSeries.
LowerCentralSeries(G) : GrpPC -> [GrpPC]
The lower central series for the group G. The series is returned as a sequence of subgroups.
NilpotencyClass(G) : GrpPC -> RngIntElt
If G is nilpotent, return the nilpotence class of G. Otherwise, -1 is returned.
pCentralSeries(G, p) : GrpPC, RngIntElt -> [GrpPC]
The p-central series for G, where p is a prime dividing |G|. The series is returned as a sequence of subgroups. The p-central series P1 triangleright P2 triangleright ... triangleright Pi of a soluble group G is defined inductively as follows:
P1 = G,
Pi + 1 = (G, Pi)Pip, for i > 0.
SubnormalSeries(G, H) : GrpPC, GrpPC -> [GrpPC]
Given a group G and a 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.
UpperCentralSeries(G) : GrpPC -> [GrpPC]
The upper central series of G. The series is returned as a sequence of subgroups.

Example GrpPC_EAS (H69E20)

The elementary abelian series of the group D3 wreath D5 has terms of the following orders:
> H := DihedralGroup(GrpPerm, 5);
> G := WreathProduct(DihedralGroup(GrpPC, 3), DihedralGroup(GrpPC, 5),
>       [H.2, H.1]);
> EAS := ElementaryAbelianSeries(G);
> for i := 1 to #EAS do
>    print FactoredOrder(EAS[i]);
> end for;
    [ <2, 6>, <3, 5>, <5, 1> ]
    [ <2, 4>, <3, 5>, <5, 1> ]
    [ <2, 4>, <3, 5> ]
    [ <3, 5> ]
    []
Hence the elementary abelian factors can be seen to have sizes 22, 5, 24, and 35, reading from top to bottom.

Series for p-groups

The following functions are only defined for a pc-group which is a p-group.

Agemo(G, i) : GrpPC, RngIntElt -> GrpPC
Given a p-group G, return the characteristic subgroup of G generated by the elements xpi, x ∈G, where i is a positive integer.
Omega(G, i) : GrpPC, RngIntElt -> GrpPC
Given a p-group G, return the characteristic subgroup of G generated by the elements of order dividing pi, where i is a positive integer.
JenningsSeries(G) : GrpPC -> [GrpPC]
Given a p-group G, return the Jennings series for G. The series is returned as a sequence of subgroups. The Jennings series J1 triangleright J2 triangleright ... triangleright Ji ... of a p-group G is defined inductively as follows:
J1 = G,
Ji + 1 = <(Ji, G), Jkp>, with k = ⌈(i + 1)/p⌉, i > 0.
pClass(G) : GrpPC -> RngIntElt
The lower exponent-p class of the p-group G.
pRanks(G) : GrpPC-> [ RngIntElt ]
A sequence whose i-th entry is the number of pc-generators for the lower exponent-p class i quotient of the p-group G.

Normal Subgroups and Complements

NormalSubgroups(G) : GrpPC -> SeqEnum
The collection of all normal subgroups of G returned as a sequence.
NormalLattice(G) : GrpPC -> SubGrpLat
The lattice of normal subgroups of G.
MinimalNormalSubgroup(G) : GrpPC -> GrpPC
An elementary abelian minimal normal subgroup of the soluble group G.
MinimalNormalSubgroup(G, N) : GrpPC -> GrpPC
Given a non-trivial, normal subgroup N of G, return an elementary abelian minimal normal subgroup of G contained in N.
Complements(G, N) : GrpPC, GrpPC -> SeqEnum
Given a normal subgroup N of G, return conjugacy class representatives of all complements of N in G. This function implements the first cohomology computation described in [CNW90].
NormalComplements(G, N) : GrpPC, GrpPC -> SeqEnum
Given a normal subgroup N of G, return all normal complements of N in G. This function implements the first cohomology computation described in [CNW90].
NormalComplements(G, H, N) : GrpPC, GrpPC, GrpPC -> SeqEnum
Given a normal subgroup N of G, and a normal subgroup H of G containing N, return all complements of N in H which are normal in G. This function implements the first cohomology computation described in [CNW90].

Example GrpPC_NormalComplements (H69E21)

We define the direct product of an extraspecial group of order 33 and D3 and let N be the first factor of this product. Inside the Sylow 3-subgroup, we see that N has 11 classes of complements, three of which are normal.
> A := ExtraSpecialGroup(GrpPC,3,1);
> B := DihedralGroup(GrpPC,3);
> G,f,p := DirectProduct(A,B);
> N := f[1](A);
> S3 := Sylow(G,3);
> cS := Complements(S3,N);
> [Index(S3,Normalizer(S3,t)):t in cS];
[ 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3 ]
We can compute only the normal complements by using NormalComplements.
> ncS := NormalComplements(S3,N);
> #ncS;
3
We can check that precisely one of these three complements is actually normal in G.
> [IsNormal(G,t):t in ncS];
[ true, false, false ]
Since N has a G-normal complement in S3, we must have S3 normal in G. We can verify this. Using the three-parameter version of NormalComplements we can directly compute the G-normal complements of N in S3.
> IsNormal(G,S3);
true
> ncG := NormalComplements(G,S3,N);
> #ncG;
1
> #NormalComplements(G,N);
1
V2.28, 13 July 2023