[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Conjugacy Classes of Subgroups

Conjugacy Classes of Subgroups

Magma contains a new algorithm for computing representatives of the conjugacy classes of subgroups. Let R denote the maximal normal soluble subgroup of the finite group G. The algorithm first constructs representatives for the conjugacy classes of subgroups of Q = G/R, and then successively extends these to larger and larger quotients of G until G itself is reached. If G is soluble, then Q is trivial and so its subgroups are known. If G is non-soluble, the quotient Q is identified in a database containing subgroup information for all groups up to some fixed order n that have trivial Fitting subgroup. Its subgroups are read from the database to provide the "seeds" for the extension process. At present, the database contains all groups with trivial Fitting subgroup of order up to 216,000. Thus, for Magma to compute the subgroups of G, the quotient of G by its radical must have order not exceeding 216,000.

Subsections

Conjugacy Classes of Subgroups

In this section we describe the functions that allow a user to create representatives of the conjugacy classes of subgroups, possibly subject to conditions. The main function, Subgroups, finds representatives for conjugacy classes of subgroups subject to certain user-supplied conditions on the order. The alternative functions ElementaryAbelianSubgroups and AbelianSubgroups, CyclicSubgroups, NilpotentSubgroups, SolubleSubgroups, PerfectSubgroups, NonsolvableSubgroups, SimpleSubgroups and RegularSubgroups allow the user to construct particular classes of subgroups.

SubgroupClasses(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Subgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of subgroups for the group G. The subgroups are returned as a sequence of records where the i-th record contains:
    Presentation: BoolElt               Default: false

Presentation := true: In the case in which G is a permutation group, construct a presentation for each subgroup.

    OrderEqual: RngIntElt               Default: 

OrderEqual := n: Only construct subgroups having order equal to n.

    OrderDividing: RngIntElt            Default: 

OrderDividing := n: Only construct subgroups having order dividing n.

    IsNormal: BoolElt                   Default: false

IsNormal := true: Only construct normal subgroups.

    IsRegular: BoolElt                  Default: false

IsRegular := true: In the case in which G is a permutation group, only construct regular subgroups.

ElementaryAbelianSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of elementary abelian subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
AbelianSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of abelian subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
CyclicSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of cyclic subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
NilpotentSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of nilpotent subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
SolubleSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
SolvableSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of solvable subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
NonsolvableSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of nonsolvable subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
PerfectSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of perfect subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
SimpleSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of non-abelian simple subgroups for the group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
RegularSubgroups(G: parameters) : GrpFin -> [ rec< Grp, RngIntElt, RngIntElt, GrpFP> ]
Representatives for the conjugacy classes of regular subgroups for the permutation group G. The subgroups are returned as a sequence of records having the same format as Subgroups. The optional parameters are also the same as for Subgroups.
SetVerbose("SubgroupLattice", i) : MonStgElt, RngIntElt ->
Turn on verbose printing for the subgroup algorithm. The level i can be 2 for maximal printing or 1 for moderate printing. The algorithm works down an elementary abelian series of the group and at each level, the possible extensions of each subgroup are listed.
Class(G, H) : GrpFin, GrpFin -> { GrpFin }
Conjugates(G, H) : GrpFin, GrpElt -> { GrpElt }
The G-conjugacy class of subgroups containing the group H.

Example Grp_Subgroups (H15E14)

> G := DihedralGroup(6);
> S := Subgroups(G);
> S;
Conjugacy classes of subgroups
------------------------------

[ 1] Order 1 Length 1 Permutation group acting on a set of cardinality 6 Order = 1 Id($) [ 2] Order 2 Length 3 Permutation group acting on a set of cardinality 6 (2, 6)(3, 5) [ 3] Order 2 Length 3 Permutation group acting on a set of cardinality 6 (1, 4)(2, 3)(5, 6) [ 4] Order 2 Length 1 Permutation group acting on a set of cardinality 6 (1, 4)(2, 5)(3, 6) [ 5] Order 3 Length 1 Permutation group acting on a set of cardinality 6 (1, 5, 3)(2, 6, 4) [ 6] Order 4 Length 3 Permutation group acting on a set of cardinality 6 (2, 6)(3, 5) (1, 4)(2, 5)(3, 6) [ 7] Order 6 Length 1 Permutation group acting on a set of cardinality 6 (1, 5, 3)(2, 6, 4) (1, 4)(2, 5)(3, 6) [ 8] Order 6 Length 1 Permutation group acting on a set of cardinality 6 (2, 6)(3, 5) (1, 5, 3)(2, 6, 4) [ 9] Order 6 Length 1 Permutation group acting on a set of cardinality 6 (1, 4)(2, 3)(5, 6) (1, 5, 3)(2, 6, 4) [10] Order 12 Length 1 Permutation group acting on a set of cardinality 6 (2, 6)(3, 5) (1, 5, 3)(2, 6, 4) (1, 4)(2, 5)(3, 6)

> // We extract the representative subgroup for class 7 > h := S[7]`subgroup; > h; Permutation group h acting on a set of cardinality 6 (1, 3, 5)(2, 4, 6) (1, 4)(2, 5)(3, 6)


The Poset of Subgroup Classes

In addition to finding representatives for conjugacy classes of subgroups, Magma allows the user to create the poset L of subgroup classes. The elements of the poset correspond to the conjugacy classes of subgroups. Two lattice elements a and b are joined by an edge if either some subgroup of the conjugacy class a is a maximal subgroup of some subgroup of conjugacy class b or vice-versa. The elements of L are called subgroup-poset elements and are numbered from 1 to n, where n is the cardinality of L. Various functions allow the user to identify maximal subgroups, normalizers, centralizers and other relatives in the lattice. Given an element e of L, one can easily create the subgroup H of G corresponding to e and one can also create the element of L corresponding to a subgroup of G.

Sections
Creating the Poset of Subgroup Classes
SubgroupLattice(G) : GrpFin -> SubGrpLat
Create the poset L of subgroup classes of G.

    Properties: BoolElt                 Default: false

Properties := true: As the subgroup classes are put into the poset, record their abstract type, i.e., elementary abelian, abelian, nilpotent, soluble, simple or perfect.

    Centralizer: BoolElt                Default: false

Centralizer := true: As each subgroup class e is put into the poset, record the class in which the centralizers of the subgroups of e lie.

    Normalizer: BoolElt                 Default: false

Normalizer := true: As each subgroup class e is put into the poset, record the class in which the normalizers of the subgroups of e lie.


Example Grp_CreateSubgroupPoset (H15E15)

We create the subgroup poset for the group ASL(2, 3).

> G := ASL(2, 3);
> L := SubgroupLattice(G : Properties := true, Normalizers:= true,
>                           Centralizers:= true);
> L;
Partially ordered set of subgroup classes
-----------------------------------------

[ 1] Order 1 Length 1 C = [20] N = [20] Maximal Subgroups: --- [ 2] Order 2 Length 9 Cyclic. C = [16] N = [16] Maximal Subgroups: 1 [ 3] Order 3 Length 12 Cyclic. C = [14] N = [14] Maximal Subgroups: 1 [ 4] Order 3 Length 24 Cyclic. C = [10] N = [10] Maximal Subgroups: 1 [ 5] Order 3 Length 4 Cyclic. C = [15] N = [18] Maximal Subgroups: 1 --- [ 6] Order 4 Length 27 Cyclic. C = [6] N = [12] Maximal Subgroups: 2 [ 7] Order 6 Length 12 Soluble. C = [3] N = [14] Maximal Subgroups: 2 5 [ 8] Order 6 Length 36 Cyclic. C = [8] N = [8] Maximal Subgroups: 2 3 [ 9] Order 9 Length 4 Elementary Abelian. C = [9] N = [18] Maximal Subgroups: 3 5 [10] Order 9 Length 8 Elementary Abelian. C = [10] N = [15] Maximal Subgroups: 4 5 [11] Order 9 Length 1 Elementary Abelian. C = [11] N = [20] Maximal Subgroups: 5 --- [12] Order 8 Length 9 Nilpotent. C = [2] N = [16] Maximal Subgroups: 6 [13] Order 18 Length 1 Soluble. C = [1] N = [20] Maximal Subgroups: 7 11 [14] Order 18 Length 12 Soluble. C = [3] N = [14] Maximal Subgroups: 7 8 9 [15] Order 27 Length 4 Nilpotent. C = [5] N = [18] Maximal Subgroups: 9 10 11 --- [16] Order 24 Length 9 Soluble. C = [2] N = [16] Maximal Subgroups: 8 12 [17] Order 36 Length 3 Soluble. C = [1] N = [19] Maximal Subgroups: 6 13 [18] Order 54 Length 4 Soluble. C = [1] N = [18] Maximal Subgroups: 13 14 15 --- [19] Order 72 Length 1 Soluble. C = [1] N = [20] Maximal Subgroups: 12 17 --- [20] Order 216 Length 1 Soluble. C = [1] N = [20] Maximal Subgroups: 16 18 19


Operations on Subgroup Class Posets

In the following, L is the poset of subgroup classes for a group G.

# L : SubGrpLat -> RngIntElt
The cardinality of L, i.e., the number of conjugacy classes of subgroups of G.
L ! i: SubGrpLat, RngIntElt -> SubGrpLatElt
Create the i-th element of the poset L. The elements of L are sorted so that classes i and j of groups whose orders o_i and o_j are the products of e_i and e_j prime numbers respectively will be ordered so that i comes before j is e_i<e_j or e_i=e_j and o_i<o_j.
L ! H: SubGrpLat, GrpFin -> SubGrpLatElt
Create the element of the poset L corresponding to the subgroup H of the group G.
Bottom(L): SubGrpLat -> SubGrpLatElt
Create the bottom of the poset L, i.e., the element of L corresponding to the trivial subgroup of G. If the poset was created with restrictions on the type of subgroups constructed, the bottom of the poset may not be the trivial subgroup.
Top(L): SubGrpLat -> SubGrpLatElt
Create the top of the poset L, i.e., the element of L corresponding to G.
Random(L): SubGrpLat -> SubGrpLatElt
Create a random element of L.

Example Grp_LatticeOperations (H15E16)

We create the subgroup lattice of AGammaL(1, 8) and locate the Fitting subgroup in the lattice.

> G := AGammaL(1, 8);
> L := SubgroupLattice(G);
> L;

Subgroup Lattice ----------------

[ 1] Order 1 Length 1 Maximal Subgroups: --- [ 2] Order 2 Length 7 Maximal Subgroups: 1 [ 3] Order 3 Length 28 Maximal Subgroups: 1 [ 4] Order 7 Length 8 Maximal Subgroups: 1 --- [ 5] Order 4 Length 7 Maximal Subgroups: 2 [ 6] Order 6 Length 28 Maximal Subgroups: 2 3 [ 7] Order 21 Length 8 Maximal Subgroups: 3 4 --- [ 8] Order 8 Length 1 Maximal Subgroups: 5 [ 9] Order 12 Length 7 Maximal Subgroups: 3 5 --- [10] Order 24 Length 7 Maximal Subgroups: 6 8 9 [11] Order 56 Length 1 Maximal Subgroups: 4 8 --- [12] Order 168 Length 1 Maximal Subgroups: 7 10 11

> F := FittingSubgroup(G); > F; Permutation group F acting on a set of cardinality 8 Order = 8 = 2^3 (1, 2)(3, 6)(4, 8)(5, 7) (1, 6)(2, 3)(4, 7)(5, 8) (1, 5)(2, 7)(3, 4)(6, 8) > L!F; 8

We now construct a chain from the bottom to the top of the lattice.

> H := Bottom(L);
> Chain := [H];
> while H ne Top(L) do
>     H := Representative(MinimalOvergroups(H));
>     Chain := Append(Chain, H);
> end while;
> Chain;
[ 1, 2, 5, 8, 10, 12 ]

Operations on Poset Elements

In the following, L is the poset of subgroups for a group G. Elements of L are identified with the integers [1..#L].

IntegerRing() ! e : SubGrpLatElt -> RngIntElt
The integer corresponding to poset element e.
e eq f : SubGrpLatElt, SubGrpLatElt -> SubGrpLatElt
True if and only if poset elements e and f are equal.
e ge f : SubGrpLatElt, SubGrpLatElt -> BoolElt
True if and only if poset element e contains poset element f.
e ge f : SubGrpLatElt, SubGrpLatElt -> BoolElt
True if and only if poset element e strictly contains poset element f.
e le f : SubGrpLatElt, SubGrpLatElt -> BoolElt
e subset f : SubGrpLatElt, SubGrpLatElt -> SubGrpLatElt
True if and only if poset element e is contained in poset element f.
e lt f : SubGrpLatElt, SubGrpLatElt -> BoolElt
True if and only if poset element e is strictly contained in poset element f.
Class Information from a Conjugacy Class Poset

In the following, L is the poset of subgroups for a group G. Elements of L are identified with the integers [1..#L].

Group(e) : SubGrpLatElt -> GrpFin
The subgroup of G that is the chosen class representative corresponding to the element e of the poset L.
Centraliser(e, f) : SubGrpLatElt, SubGrpLatElt -> SubGrpLatElt
Centralizer(e, f) : SubGrpLatElt, SubGrpLatElt -> SubGrpLatElt
Given poset elements e and f, return the poset element that corresponds to the class of subgroups that contains the centralizers of the subgroups of class f (taken in a subgroup of class e). If no subgroup of class f lies in class e, the construction fails.
Normaliser(e, f) : SubGrpLatElt, SubGrpLatElt -> SubGrpLatElt
Normalizer(e, f) : SubGrpLatElt, SubGrpLatElt -> SubGrpLatElt
Given poset elements e and f, return the poset element that corresponds to the class of subgroups that contain the normalizers of the subgroups of class f (taken in a subgroup of class e). If no subgroup of class f lies in class e, the construction fails.
Length(e) : SubGrpLatElt -> RngIntElt
The number of subgroups in the class corresponding to e.
Order(e) : SubGrpLatElt -> RngIntElt
The order of the subgroup of G corresponding to e.
MaximalSubgroups(e) : SubGrpLatElt -> { SubGrpLatElt }
The maximal subgroups of e, returned as a set of poset elements.
MinimalOvergroups(e) : SubGrpLatElt -> { SubGrpLatElt }
The minimal overgroups of e, returned as a set of poset elements.
NumberOfInclusions(e, f) : SubGrpLatElt, SubGrpLatElt -> RngIntElt
The number of elements of the conjugacy class of subgroups e that lie in a fixed representative of the conjugacy class of subgroups f.
[Next] [Prev] [Right] [Left] [Up] [Index] [Root]