|
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.
The most flexible method of defining a subgroup is to list generators
or normal generators for the subgroup.
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.
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.
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
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.
Given an element g and a group G, return true if g is an element
of G, false otherwise. In order for this comparison to make sense,
both g and G must be contained in some covering group.
Given an element g and a group G, return true if g is not an
element of G, false otherwise. In order for this comparison to make sense,
both g and G must be contained in some covering group.
Given an element g belonging to some subgroup H of the group G,
rewrite g as an element of G.
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.
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.
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
Given a group G and a set S of elements belonging to a group H,
where G and H have some covering group, return true if S is
a subset of G, false otherwise.
Given a group G and a set S of elements belonging to a group H,
where G and H have some covering group, return true if S is
not a subset of G, false otherwise.
Given groups G and H, subgroups of some covering group, return
true if H is a subgroup of G, false otherwise.
Given groups G and H, subgroups of some covering group, return
true if H is not a subgroup of G, false otherwise.
Given groups G and H, subgroups of some covering group, return
true if G and H are the same group, false otherwise.
Given groups G and H, subgroups of some covering group, return
true if G and H are distinct groups, false otherwise.
The map from the subgroup H of G to G.
The operators and functions which construct a subgroup of a pc-group always
return the subgroup as a pc-group.
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.
The intersection of groups H and K. The algorithm used
for non-p-groups is described in [GS90].
Replace H with the intersection of groups H and K.
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.
Centraliser(G, g) : GrpPC, GrpPCElt -> GrpPC
The centralizer of the element g in the group G.
Centraliser(G, H) : GrpPC, GrpPC -> GrpPC
The centralizer of the subgroup H in the group G.
The maximal normal subgroup of G that is contained in the subgroup
H of G.
NormalClosure(G, H) : GrpPC, GrpPC -> GrpPC
The normal closure of the subgroup H in the group G.
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].
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 meet operator.
> 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
The index of the subgroup H in the group G, returned as an
ordinary integer.
The factored index of the subgroup H in the group G.
Returns true if the subgroup H of the group G lies in the centre of G,
false otherwise.
Given a group G and subgroups H and K belonging to G, return the
value true if 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.
Returns true if the subgroup H of the group G is a maximal subgroup of G,
false otherwise.
Returns true if the subgroup H of the group G is a normal subgroup of G,
false otherwise.
Returns true if the subgroup H of the group G is self-normalizing
in G, false otherwise.
Returns true if the subgroup H of the group G is subnormal in G, false
otherwise.
> 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.
The functions given here all assume that G is a soluble group having
order p1e1p2e2 ... pkek.
A complement basis of the soluble group G. This is a sequence of k subgroups
of G, where the i-th subgroup has order p1e1 ... pi - 1^
(ei - 1) pi + 1ei + 1 ... pkek,
i.e. the complements of the k Sylow subgroups of G.
HallSubgroup(G, S) : GrpPC, RngIntElt -> GrpPC
The Hall π-subgroup of 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 the Hall p'-subgroup of G is returned.
pCore(G, S) : GrpPC, RngIntElt -> GrpPC
The core of the Hall π-subgroup, where π is defined by the argument S,
which has the same interpretation as for HallSubgroup.
A Sylow basis for the soluble group G. This is a sequence of k
subgroups of G, having orders p1e1, ..., pkek,
i.e. the k Sylow subgroups of G.
Sylow(G, p) : GrpPC, RngIntElt -> GrpPC
A Sylow p-subgroup for the group G.
SystemNormaliser(G) : GrpPC -> GrpPC
The system normalizer for the group G. The system normalizer of
the complement basis Σ = { H1, ..., Hk } is defined
to be the intersection of the normalizers in G of each Hi, ie.
N(Σ) = ∩i=1k NG(Hi).
The algorithm used is derived directly from the definition.
Given the group D 3 wreath 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
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.
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.
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.
Conjugacy class representatives for all subgroups of G having
index ≤n in G.
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.
The lattice of conjugacy classes of subgroups of G.
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≤j, and is the
number of subgroups of class i containing a given subgroup in class j
when i≥j.
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.
Pretty-print the Burnside matrix corresponding to the lattice of
subgroups of G.
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
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|