Subgroups
Subgroups of pc-groups are treated as independent pc-groups in their own right, with the subgroup relationship maintained in internal data structures. Thus, a subgroup has generators and a pc-presentation and one can apply any of the functions described earlier for groups. Furthermore, there are a variety of functions and operations specifically involving subgroups.
Definition of Subgroups by Generators
The most flexible method of defining a subgroup is to list generators or normal generators for the subgroup.
- sub<G | L>: GrpPC, List -> GrpPC, Map
Construct the subgroup \(H\) of the pc-group \(G\) generated by the elements specified by the terms of the generator list \(L\).
A term \(L[i]\) of the generator list may consist of any of the following objects:
- (a)
An element liftable to \(G\) (in particular, any element of \(G\));
- (b)
A subgroup of \(G\);
- (c)
A set or sequence of (a), or (b).
The collection of words and groups specified by the list must all belong to the group \(G\) and \(H\) will be constructed as a subgroup of \(G\).
The subgroup \(H\) is defined to be generated by the words specified directly by terms \(L[i]\) together with the stored generating words for any groups specified by terms of \(L[i]\). Magma will compute a set of pc-generators for \(H\) and, if \(H\) is a \(p\)-group, a minimal generating set.
The inclusion map from \(H\) to \(G\) is returned as well.
- ncl<G | L>: GrpPC, List -> GrpPC, Map
Construct the subgroup \(N\) of the pc-group \(G\) as the normal closure of the subgroup generated by the elements specified by the terms of the generator list \(L\).
The possible forms of a term \(L[i]\) of the generator list are the same as for the
sub-constructor.The inclusion map from \(N\) to \(G\) is returned as well.
- Example: Creating Subgroups by Generators (ex-9f724a)
We define \(G\) to be \(Z_5\) wr \(Z_3\) and then create two subgroups. Notice that the
ncl-constructor builds a larger subgroup in this case.> G<a,b,c,d> := PolycyclicGroup<a,b,c,d| a^3, b^5, c^5, d^5, > b^a = c, c^a = d, d^a = b>; > H := sub<G| b,c>; > Order(H); 25 > IsAbelian(H); true > IsNormal(G, H); false > N := ncl<G| b,c>; > IsNormal(G, N); true > Order(N); 125
Membership and Coercion
There are several functions and operators which allow one to take advantage of the subgroup relationship to rewrite elements from one presentation to another. That is, if \(x\) is an element of \(H\) which is a subgroup of \(G\), then \(x\) has a representation as a normal word in the pc-generators of \(H\), but also has a representation as a (different) normal word in the pc-generators of \(G\). The coercion operator and inclusion map allow one to compute one of these words based on the other, thus shifting where we view the element in question.
Magma keeps track of the various relationships between subgroups in a group. Thus, if \(H\) is a subgroup of \(K\) which is a subgroup of \(G\), then \(H\) can also be considered a subgroup \(G\). Similarly, in situations involving elements of two groups, \(A\) and \(B\), Magma will often try to find a covering group \(C\) which contains both of \(A\) and \(B\). In this case, the elements may be automatically coerced into the covering group.
- g in G: GrpPCElt, GrpPC -> BoolElt
Given an element \(g\) and a group \(G\), return
trueif \(g\) is an element of \(G\),falseotherwise. In order for this comparison to make sense, both \(g\) and \(G\) must be contained in some covering group.
- g notin G: GrpPCElt, GrpPC -> BoolElt
Given an element \(g\) and a group \(G\), return
trueif \(g\) is not an element of \(G\),falseotherwise. In order for this comparison to make sense, both \(g\) and \(G\) must be contained in some covering group.
- G ! g: GrpPC, GrpPCElt -> GrpPCElt
Given an element \(g\) belonging to some subgroup \(H\) of the group \(G\), rewrite \(g\) as an element of \(G\).
- H ! g: GrpPC, GrpPCElt -> GrpPCElt
Given an element \(g\) belonging to the group \(G\), and given a subgroup \(H\) of \(G\) containing \(g\), rewrite \(g\) as an element of \(H\).
- K ! g: GrpPC, GrpPCElt -> GrpPCElt
Given an element \(g\) belonging to the group \(H\), and a group \(K\), such that \(H\) and \(K\) are subgroups of a covering group \(G\), and both \(H\) and \(K\) contain \(g\), rewrite \(g\) as an element of \(K\).
- Example: Membership and Coercion in Subgroups (ex-ac7047)
Run in calculator (opens in a new tab)
We create two subgroups of a dihedral group.
> G := DihedralGroup(GrpPC, 10); > C := sub<G| G.2>; > H := sub<G| G.1, G.3>; > H.1 in C; false > H.2 in C; true > Parent(H.1); GrpPC : H of order 10 = 2 * 5 PC-Relations: H.1^2 = Id(H), H.2^5 = Id(H), H.2^H.1 = H.2^4 > G!(H.1); G.1
Magma will compute appropriate covering groups as needed.
> H.1*C.1; G.1 * G.2 * G.3^2 > x := (H.1, C.2); > x; G.3^2 > H!x; H.2^2 > C!x; C.2^2 > C!(H.2); C.2
Inclusion and Equality
- S subset G: { GrpPCElt}, GrpPC -> BoolElt
Given a group \(G\) and a set \(S\) of elements belonging to a group \(H\), where \(G\) and \(H\) have some covering group, return
trueif \(S\) is a subset of \(G\),falseotherwise.
- S notsubset G: { GrpPCElt}, GrpPC -> BoolElt
Given a group \(G\) and a set \(S\) of elements belonging to a group \(H\), where \(G\) and \(H\) have some covering group, return
trueif \(S\) is not a subset of \(G\),falseotherwise.
- H subset G: GrpPC, GrpPC -> BoolElt
- IsSubgroup(H, G): GrpPC, GrpPC -> BoolElt
Given groups \(G\) and \(H\), subgroups of some covering group, return
trueif \(H\) is a subgroup of \(G\),falseotherwise.
- H notsubset G: GrpPC, GrpPC -> BoolElt
Given groups \(G\) and \(H\), subgroups of some covering group, return
trueif \(H\) is not a subgroup of \(G\),falseotherwise.
- G eq H: GrpPC, GrpPC -> BoolElt
Given groups \(G\) and \(H\), subgroups of some covering group, return
trueif \(G\) and \(H\) are the same group,falseotherwise.
Standard Subgroup Constructions
The operators and functions which construct a subgroup of a pc-group always return the subgroup as a pc-group.
- H ^ g: GrpPC, GrpPCElt -> GrpPC
- Conjugate(H, g): GrpPC, GrpPCElt -> GrpPC
Construct the conjugate \(g^{-1}*H*g\) of the group \(H\) under the action of the element \(g\). The group \(H\) and the element \(g\) must belong to a common group.
- H meet K: GrpPC, GrpPC -> GrpPC
The intersection of groups \(H\) and \(K\). The algorithm used for non-\(p\)-groups is described in [GS90].
- CommutatorSubgroup(G, H, K): GrpPC, GrpPC, GrpPC -> GrpPC
- CommutatorSubgroup(H, K): GrpPC, GrpPC -> GrpPC
Construct the commutator subgroup of groups \(H\) and \(K\), where \(H\) and \(K\) are subgroups of a common group \(G\).
- Centralizer(G, g): GrpPC, GrpPCElt -> GrpPC
- Centraliser(G, g): GrpPC, GrpPCElt -> GrpPC
The centralizer of the element \(g\) in the group \(G\).
- Centralizer(G, H): GrpPC, GrpPC -> GrpPC
- Centraliser(G, H): GrpPC, GrpPC -> GrpPC
The centralizer of the subgroup \(H\) in the group \(G\).
- Core(G, H): GrpPC, GrpPC -> GrpPC
The maximal normal subgroup of \(G\) that is contained in the subgroup \(H\) of \(G\).
- H ^ G: GrpPC, GrpPC -> GrpPC
- NormalClosure(G, H): GrpPC, GrpPC -> GrpPC
The normal closure of the subgroup \(H\) in the group \(G\).
- Normalizer(G, H): GrpPC, GrpPC -> GrpPC
- Normaliser(G, H): GrpPC, GrpPC -> GrpPC
The normalizer of the subgroup \(H\) of the group \(G\). The algorithm used for non-\(p\)-groups is described in [GS90].
- Example: Subgroup Constructions (ex-38016c)
Run in calculator (opens in a new tab)
We’ll consider various subgroups of a direct product of a cyclic group of order 6 and dihedral group of order 10.
> G := DirectProduct(CyclicGroup(GrpPC,6), DihedralGroup(GrpPC,5)); > x := G.3; > C := Centralizer(G,x); > C; GrpPC : C of order 12 = 2^2 * 3 PC-Relations: C.1^2 = Id(C), C.2^2 = Id(C), C.3^3 = Id(C) > H := sub<G|G.2,G.4>; > Order(H); 15
We can compute the intersection using the
meetoperator.> K := H meet C; > K; GrpPC : K of order 3 PC-Relations: K.1^3 = Id(K)
To get the join of two subgroups, we simply use the
sub-constructor.> J := sub<G|H, C>; > J eq G; true
Properties of Subgroups
Predicates for Subgroups
- IsCentral(G, H): GrpPC, GrpPC -> BoolElt
Returns
trueif the subgroup \(H\) of the group \(G\) lies in the centre of \(G\),falseotherwise.
- IsConjugate(G, H, K): GrpPC, GrpPC, GrpPC -> BoolElt, GrpPCElt
Given a group \(G\) and subgroups \(H\) and \(K\) belonging to \(G\), return the value
trueif \(H\) and \(K\) are conjugate in \(G\). The function returns a second value in the event that the subgroups are conjugate: an element \(z\) which conjugates \(H\) into \(K\).
- IsMaximal(G, H): GrpPC, GrpPC -> BoolElt
Returns
trueif the subgroup \(H\) of the group \(G\) is a maximal subgroup of \(G\),falseotherwise.
- IsNormal(G, H): GrpPC, GrpPC -> BoolElt
Returns
trueif the subgroup \(H\) of the group \(G\) is a normal subgroup of \(G\),falseotherwise.
- IsSelfNormalizing(G, H): GrpPC, GrpPC -> BoolElt
Returns
trueif the subgroup \(H\) of the group \(G\) is self-normalizing in \(G\),falseotherwise.
- IsSubnormal(G, H): GrpPC, GrpPC -> BoolElt
Returns
trueif the subgroup \(H\) of the group \(G\) is subnormal in \(G\),falseotherwise.
- Example: Predicates for Subgroups (ex-340cb9)
Run in calculator (opens in a new tab)
> G := PCGroup(Sym(4)); > G; GrpPC : G of order 24 = 2^3 * 3 PC-Relations: G.1^2 = Id(G), G.2^3 = Id(G), G.3^2 = Id(G), G.4^2 = Id(G), G.2^G.1 = G.2^2, G.3^G.1 = G.3 * G.4, G.3^G.2 = G.4, G.4^G.2 = G.3 * G.4 > U := sub<G|G.4>; > IsNormal(G,U); false > IsSubnormal(G,U); true
Now, we try to construct a subnormal chain by taking normalizers.
> N1 := Normalizer(G,U); > Index(G,N1); 3 > N2 := Normalizer(G,N1); > Index(G,N2); 3 > N1 eq N2; true
We’re stuck. However, we can work our way down with
NormalClosure.> M1 := NormalClosure(G,U); > U subset M1; true > M1 subset U; false > M2 := NormalClosure(M1,U); > M2 eq U; true
Now, we work inside the Sylow 2-subgroup and look for complements of the cyclic group of order 4 by brute force.
> S := Sylow(G,2); > S; GrpPC : S of order 8 = 2^3 PC-Relations: S.2^S.1 = S.2 * S.3 > T := sub<S|S.1*S.2>; > list := []; > for x in S do > if (Order(x) ne 2) or (x in T) then > continue; > end if; > Append(~list, sub<S|x>); > end for; > #list; 4 > for i in [1..3], j in [i+1..4] do > print i,j,IsConjugate(S,list[i],list[j]); > end for; 1 2 true S.1 1 3 false 1 4 false 2 3 false 2 4 false 3 4 true S.2
We see that \(T\) has two conjugacy classes of complements.
Hall \(\pi\)-Subgroups and Sylow Systems
The functions given here all assume that \(G\) is a soluble group having order \(p_{1}^{e_1}p_{2}^{e_2} \cdots p_{k}^{e_k}\).
- ComplementBasis(G): GrpPC -> [GrpPC]
A complement basis of the soluble group \(G\). This is a sequence of \(k\) subgroups of \(G\), where the \(i\)-th subgroup has order \(p_{1}^{e_{1}} \ldots p_{i - 1}^ {e_{i - 1}} p_{i + 1}^{e_{i + 1}} \ldots p_{k}^{e_{k}}\), i.e. the complements of the \(k\) Sylow subgroups of \(G\).
- HallSubgroup(G, S): GrpPC, { RngIntElt} -> GrpPC
- HallSubgroup(G, S): GrpPC, RngIntElt -> GrpPC
The Hall \(\pi\)-subgroup of \(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 the Hall \(p'\)-subgroup of \(G\) is returned.
- pCore(G, S): GrpPC, { RngIntElt} -> GrpPC
- pCore(G, S): GrpPC, RngIntElt -> GrpPC
The core of the Hall \(\pi\)-subgroup, where \(\pi\) is defined by the argument \(S\), which has the same interpretation as for
HallSubgroup.
- SylowBasis(G): GrpPC -> [GrpPC]
A Sylow basis for the soluble group \(G\). This is a sequence of \(k\) subgroups of \(G\), having orders \(p_{1}^{e_{1}}, \ldots, p_{k}^{e_{k}}\), i.e. the \(k\) Sylow subgroups of \(G\).
- SylowSubgroup(G, p): GrpPC, RngIntElt -> GrpPC
- Sylow(G, p): GrpPC, RngIntElt -> GrpPC
A Sylow \(p\)-subgroup for the group \(G\).
- SystemNormalizer(G): GrpPC -> GrpPC
- SystemNormaliser(G): GrpPC -> GrpPC
The system normalizer for the group \(G\). The system normalizer of the complement basis \(\Sigma = \lbrace H_1,...,H_k\rbrace\) is defined to be the intersection of the normalizers in G of each \(H_i\), ie. \(N(\Sigma) = \cap_{i=1}^{k} N_G(H_i)\). The algorithm used is derived directly from the definition.
- Example: Hall Subgroups of a Wreath Product (ex-475f0f)
Run in calculator (opens in a new tab)
Given the group \(D_3 \wr D_5\), we can construct the Hall 2-subgroup as follows:
> H := DihedralGroup(GrpPerm, 5); > G := WreathProduct(DihedralGroup(GrpPC, 3), DihedralGroup(GrpPC, 5), > [H.2, H.1]); > H2 := HallSubgroup(G, 2); > Order(H2); 64
The Hall \(2'\)-subgroup of the same group is constructed as follows:
> H35 := HallSubgroup(G, -2); > Order(H35); 1215
Conjugacy Classes of Subgroups
Magma has functions for computing the subgroups of a group that return the subgroups either as a list of conjugacy class representatives as or as a poset. Details of these functions may be found in Chapter Groups. Here we mention the basic functions for convenience.
- SubgroupClasses(G): GrpPC -> SeqEnum
- Subgroups(G): GrpPC -> SeqEnum
Conjugacy class representatives for all subgroups of \(G\). The algorithm was developed by M. Slattery and is essentially that of [Hul99] without the action of automorphisms.
- AbelianSubgroups(G): GrpPC -> SeqEnum
- CyclicSubgroups(G): GrpPC -> SeqEnum
- ElementaryAbelianSubgroups(G): GrpPC -> SeqEnum
- NilpotentSubgroups(G): GrpPC -> SeqEnum
Conjugacy class representatives for all subgroups of the indicated type in \(G\). The algorithm used is essentially that of [Hul99] without the action of automorphisms. Appropriate filters are applied to select the desired groups at each successive quotient in the computation.
- LowIndexSubgroups(G, n): GrpPC, RngIntElt -> []
Conjugacy class representatives for all subgroups of \(G\) having index \(\le n\) in \(G\).
- MaximalSubgroups(G): GrpPC -> [GrpPC]
A sequence of conjugacy class representatives for the maximal subgroups of \(G\). The algorithm, developed by Charles Leedham-Green, relies on computing a special presentation for \(G\).
- BurnsideMatrix(G): GrpPC -> AlgMatElt
The Burnside matrix corresponding to the lattice of subgroups of \(G\). The \((i,j)\)th entry of the matrix is the number of subgroups in class \(i\) contained in a single subgroup of class \(j\) when \(i\le j\), and is the number of subgroups of class \(i\) containing a given subgroup in class \(j\) when \(i\ge j\).
- TableOfMarks(G): GrpPC -> AlgMatElt
Burnside’s table of marks corresponding to the lattice of subgroups of \(G\). Rows correspond to marks for transitive permutation representations of \(G\), while the entries in column \(j\) are the number of fixed points of subgroup class \(j\) in each transitive representation.
- DisplayBurnsideMatrix(G): GrpPC
Pretty-print the Burnside matrix corresponding to the lattice of subgroups of \(G\).
- Example: Subgroup Classes (ex-cf7628)
Run in calculator (opens in a new tab)
To show a bit about subgroup classes, we look at the direct product of \(C_3\) and \(D_3\). First we list out the normal subgroups of \(G\).
> G := DirectProduct(CyclicGroup(GrpPC,3), > DihedralGroup(GrpPC,3)); > ns := NormalSubgroups(G); > ns; Conjugacy classes of subgroups ------------------------------ [1] Order 1 Length 1 GrpPC of order 1 PC-Relations: [2] Order 3 Length 1 GrpPC of order 3 PC-Relations: $.1^3 = Id($) [3] Order 3 Length 1 GrpPC of order 3 PC-Relations: $.1^3 = Id($) [4] Order 6 Length 1 GrpPC of order 6 = 2 * 3 PC-Relations: $.1^2 = Id($), $.2^3 = Id($), $.2^$.1 = $.2^2 [5] Order 9 Length 1 GrpPC of order 9 = 3^2 PC-Relations: $.1^3 = Id($), $.2^3 = Id($) [6] Order 18 Length 1 GrpPC of order 18 = 2 * 3^2 PC-Relations: $.1^2 = Id($), $.2^3 = Id($), $.3^3 = Id($), $.3^$.1 = $.3^2
The normal subgroups sequence has a special printing routine. Each entry in the sequence is actually a record.
> ns[2]; rec<recformat<order, length, subgroup, presentation> | order := 3, length := 1, subgroup := GrpPC of order 3 PC-Relations: $.1^3 = Id($)>
We extract the two normal subgroups of order 3. Each of them turn out to have one conjugacy class of complements in \(G\). However, one of the complements is normal and the other is not.
> N1 := ns[2]`subgroup; > N2 := ns[3]`subgroup; > c1 := Complements(G,N1); > c1; [ GrpPC of order 6 = 2 * 3 PC-Relations: $.1^2 = Id($), $.2^3 = Id($), $.2^$.1 = $.2^2 ] > c2 := Complements(G,N2); > c2; [ GrpPC of order 6 = 2 * 3 PC-Relations: $.1^2 = Id($), $.2^3 = Id($) ] > Index(G,Normalizer(G,c1[1])); 1 > Index(G,Normalizer(G,c2[1])); 3
We can look at the full list of classes of subgroups of \(G\) to see that there are three classes of non-normal subgroups as well as the normal subgroups. There are two non-normal subgroups of order 3 in addition to \(N1\) and \(N2\).
> Subgroups(G); Conjugacy classes of subgroups ------------------------------ [ 1] Order 1 Length 1 GrpPC of order 1 PC-Relations: [ 2] Order 2 Length 3 GrpPC of order 2 PC-Relations: $.1^2 = Id($) [ 3] Order 3 Length 1 GrpPC of order 3 PC-Relations: $.1^3 = Id($) [ 4] Order 3 Length 1 GrpPC of order 3 PC-Relations: $.1^3 = Id($) [ 5] Order 3 Length 2 GrpPC of order 3 PC-Relations: $.1^3 = Id($) [ 6] Order 6 Length 1 GrpPC of order 6 = 2 * 3 PC-Relations: $.1^2 = Id($), $.2^3 = Id($), $.2^$.1 = $.2^2 [ 7] Order 6 Length 3 GrpPC of order 6 = 2 * 3 PC-Relations: $.1^2 = Id($), $.2^3 = Id($) [ 8] Order 9 Length 1 GrpPC of order 9 = 3^2 PC-Relations: $.1^3 = Id($), $.2^3 = Id($) [ 9] Order 18 Length 1 GrpPC of order 18 = 2 * 3^2 PC-Relations: $.1^2 = Id($), $.2^3 = Id($), $.3^3 = Id($), $.3^$.1 = $.3^2