The functions described in this section apply only to finite groups for which a base and strong generating set may be constructed.
Given the matrix group G, construct the quotient group Q = G/N, where N is the normal closure of the subgroup of G generated by the elements specified by L. The clause L is a list of one or more items of the following types:Each element or group specified by the list must belong to the same generic matrix group. The function returns
- (a)
- A sequence of n integers defining a matrix of G;
- (b)
- A set or sequence of sequences of type (a);
- (c)
- An element of G;
- (d)
- A set or sequence of elements of G;
- (e)
- A subgroup of G;
- (f)
- A set or sequence of subgroups of G.
Currently in Magma, the quotient group is constructed via the regular representation of the quotient, so that the application of this operator is restricted to the case where the index of N in G is small. The representation of the quotient that is returned is the result of applying degree reduction to the regular representation, so need not be regular.
- (a)
- the quotient group Q, and
- (b)
- the natural homomorphism f: G -> Q.
The generators of the quotient group correspond to the generators of G.
Given a normal subgroup N of the matrix group G, construct the quotient of G by N. Currently in Magma, the quotient group is constructed via the regular representation of the quotient, so the application of this operator is restricted to the case where the index of N in G is small. The representation of the quotient that is returned is the result of applying degree reduction to the regular representation, so need not be regular.
> G := MatrixGroup< 3, GF(5) | [0,1,0, 1,0,0, 0,0,1], [0,1,0, 0,0,1, 1,0,0 ], > [2,0,0, 0,1,0, 0,0,1] >; > Order(G); 384 > Q, f := quo< G | G.2 >; > Q; Permutation group Q of degree 8 (1, 2)(3, 4)(5, 6)(7, 8) Id(Q) (1, 3, 5, 7)(2, 4, 6, 8) > IsAbelian(Q); true > AbelianInvariants(Q); [ 4, 2 ]
A number of standard quotients may be constructed. The method first constructs a presentation for the matrix group and then applies the appropriate fp-group algorithm.
The maximal abelian quotient G/Gprime of the group G as GrpAb (cf. chapter ABELIAN GROUPS). The natural epimorphism π:G -> G/Gprime is returned as second value.
The maximal p-elementary abelian quotient Q of the group G as GrpAb (cf. chapter ABELIAN GROUPS). The natural epimorphism π:G -> Q is returned as second value.
Given a matrix group G, a prime p and a positive integer c, construct a pc-presentation for the largest p-quotient P of G having lower exponent-p class at most c. If c is given as 0, then the limit 127 is placed on the class.The function also returns the natural homomorphism π from G to P, a sequence S describing the definitions of the pc-generators of P and a flag indicating whether P is the maximal p-quotient of G.
The k-th element of S is a sequence of two integers, describing the definition of the k-th pc-generator P.k of P as follows.
- -
- If S[k] = [0, r], then P.k is defined via the image of G.r under π.
- -
- If S[k] = [r, 0], then P.k is defined via the power relation for P.r.
- -
- If S[k] = [r, s], then P.k is defined via the conjugate relation involving P.rP.s.
This function returns the class c nilpotent quotient of the matrix group G, together with the epimorphism π from G onto this quotient.
The function returns the largest soluble quotient S of the matrix group G together with the epimorphism π:G -> S.
For a solvable group G, the function returns an isomorphic group of type GrpPC together with an isomorphism from G to the new group. If G is not solvable, then the call to PCGroup will result in an error.
> DB := RationalMatrixGroupDatabase(); > G := Group(DB, 10, 2); > G : Minimal; MatrixGroup(10, Integer Ring) of order 4147200 > A := AbelianQuotient(G); A; Abelian Group isomorphic to Z/2 + Z/2 + Z/2 Defined on 3 generators Relations: 2*A.1 = 0 2*A.2 = 0 2*A.3 = 0 > S, f := SolubleQuotient(G); S; GrpPC : S of order 32 = 2^5 PC-Relations: S.2^2 = S.4, S.2^S.1 = S.2 * S.4, S.3^S.2 = S.3 * S.4 * S.5 > G.1 @ f; S.1 * S.4 * S.5 > S.5 @@ f in DerivedGroup(G); true