Normal Subgroups and Subgroup Series
Characteristic Subgroups
- 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\).
- 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 \(\pi\)-subgroup of \(G\), \(O_{\pi}(G)\), where \(\pi\) 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 \(O_{p'}(G)\) is returned.
Subgroup Series
- PrimaryAbelianBasis(G): GrpPC -> [ GrpPCElt ], [ RngIntElt ]
- AbelianBasis(G): GrpPC -> [ GrpPCElt ], [ RngIntElt ]
Given an abelian group \(G\), return sequences \(B\) and \(I\) such that \({\rm order}(B[i]) = I[i]\) and \(\langle B\rangle = 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.ithroughG.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)throughG.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.
- 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 thanElementaryAbelianSeries.
- 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 \(P_1 \triangleright P_2 \triangleright \cdots \triangleright P_i\) of a soluble group \(G\) is defined inductively as follows:
- •
\(P_1 = G\),
- •
\(P_{i+1} = (G, P_i)P_i^p\), 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: Elementary Abelian Series (ex-54e655)
The elementary abelian series of the group \(D_3 \wr D_5\) 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 \(2^2\), \(5\), \(2^4\), and \(3^5\), 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 \(x^{p^i}\), \(x \in 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 \(p^i\), 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 \(J_1 \triangleright J_2 \triangleright \cdots \triangleright J_i \cdots\) of a \(p\)-group \(G\) is defined inductively as follows:
- •
\(J_1 = G\),
- •
\(J_{i+1} = <(J_i, G), J_k^p>\), with \(k = \lceil (i+1)/p\rceil\), \(i > 0\).
Normal Subgroups and Complements
- NormalSubgroups(G): GrpPC -> SeqEnum
The collection of all normal subgroups of \(G\) returned as a sequence.
- 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: Normal Complements (ex-12efb9)
Run in calculator (opens in a new tab)
We define the direct product of an extraspecial group of order \(3^3\) and \(D_3\) 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
NormalComplementswe 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