A powerful technique for investigating an fp-group is to study some of its quotients. For example, the action of a group G on the cosets of a subgroup H (where the index of H in G is finite) as described in the section on subgroups is an epimorphism of G onto a permutation group of degree [G:H]. In this section further methods for constructing various types of quotient group are described. Specifically, machinery is provided for constructing abelian quotients, p-quotients, nilpotent quotients, soluble quotients and PSL(2, q)/PGL(2, q) quotients.
Computing the quotient of an fp-group G by its derived group is usually the first step in analyzing an fp-group. The ability to do this to finite-index subgroups of G is a key step when trying to prove that a group is infinite. The intrinsics in this section compute information about the abelian quotient of an fp-group G.
Intrinsics:
AbelianQuotient (G) : The maximal abelian quotient G/Gprime of the fp-group G is returned as a group in category GrpAb (cf. chapter ABELIAN GROUPS). The natural epimorphism π:G -> G/Gprime is returned as second value.
HasFiniteAbelianQuotient (G) : Return true if the maximal abelian quotient of the fp-group G is finite.
ElementaryAbelianQuotient (G, p) : The maximal p-elementary abelian quotient Q is returned as a group G in category GrpAb (cf. chapter ABELIAN GROUPS). The natural epimorphism π:G -> Q is returned as second value.
AbelianQuotientInvariants (G) : Let G be an fp-group or a subgroup of finite index of an fp-group. The elementary divisors of the derived quotient group G/G' are returned as a sequence of integers.
AbelianQuotientInvariants (G, n) : Let G be an fp-group, n a small integer and N the normal subgroup of G generated by the derived group G' together with all n-th powers of elements of G. The elementary divisors of the quotient group G/N, are returned as a sequence of integers.
AbelianQuotientPrimes (G) : Return a sequence of primes containing all prime divisors in the order of G/G', if this is finite. Note that there may be primes in the return sequence which do not divide this order. If [ 0 ] is returned then G/G' is infinite. If [] is returned, then G is perfect.
HasComputableAbelianQuotient (G) : Given an fp-group G, this intrinsic tests whether the abelian quotient of G can be computed. If so, it returns the value true, the abelian quotient A of G and the natural epimorphism π:G -> A. If the abelian quotient of G cannot be computed, the value false is returned.
HasInfiniteComputableAbelianQuotient (G) : Given an fp-group G, this function tests whether the abelian quotient of G can be computed and is infinite. If so, it returns the value true, the abelian quotient A of G and the natural epimorphism π:G -> A. If the abelian quotient of G cannot be computed or if it is finite, the value false is returned.
Notes:
> F<a, b> := FreeGroup(2); > F7<a, b> := quo< F | a^2*b^-2*a^-1*b^-2*(a^-1*b^-1)^2, > a*b*a*b^2*a*b*a*b^-1*(a*b^2)^2 >; > F7; Finitely presented group F7 on 2 generators Relations a^2 * b^-2 * a^-1 * b^-2 * a^-1 * b^-1 * a^-1 * b^-1 =Id(F7) a * b * a * b^2 * a * b * a * b^-1 * a * b^2 * a * b^2 = Id()7The first step is to determine the structure of the maximal abelian quotient of F(7).
> AbelianQuotientInvariants(F7); [ 29 ]The maximal abelian quotient of F(7) is cyclic of order 29. At this point there is no obvious way to proceed, so an attempt is made to determine the index of some subgroups.
> Index( F7, sub< F7 | a > ); 1This demonstrates that F(7) is generated by a and so must be cyclic. This fact coupled with the knowledge that its abelian quotient has order 29 proves that the group is cyclic of order 29.
> G<a, b> := FPGroup<a, b| a^8, b^7, (a * b)^2, (a * b^-1)^3>; > H<x, y> := sub< G | a^2, a * b^-1 >;The fastest way to determine the order of the maximal 2-elementary abelian quotient of H is to use the modular version of AbelianQuotientInvariants:
> #AbelianQuotientInvariants(H, 2); 1So the maximal 2-elementary abelian quotient of H has order 21.
Let F be a finitely presented group, p a prime and c a positive integer. A p-quotient algorithm constructs a consistent power-conjugate presentation for the largest p-quotient of F having lower exponent-p class at most c. The p-quotient algorithm used by Magma is part of the ANU p-Quotient program. For details of the algorithm, see [NO96]. The result is returned as a group of type GrpPC (cf. chapter FINITE SOLUBLE GROUPS).
Intrinsics:
pQuotient (G, p, c) : Given an fp-group G, a prime p and a positive integer c, construct a pc-presentation for the largest p-quotient Q 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 intrinsic also returns the natural homomorphism π from G to Q, a sequence S describing the definitions of the pc-generators of Q and a flag indicating whether Q is the maximal p-quotient of G.
Notes:
> F<a,b> := FreeGroup(2); > G := quo< F | (b, a, a) = 1, (a * b * a)^4 = 1 >; > Q, fQ := pQuotient(G, 2, 6); > Order(Q); 524288 > fQ; Mapping from: GrpFP: G to GrpPC: Q
> F<a,b> := FreeGroup(2); > G := quo< F | a^3 = b^3 = 1 >; > q := pQuotient(G, 3, 6: Print := 1, Exponent := 9); Lower exponent-3 central series for G Group: G to lower exponent-3 central class 1 has order 3^2 Group: G to lower exponent-3 central class 2 has order 3^3 Group: G to lower exponent-3 central class 3 has order 3^5 Group: G to lower exponent-3 central class 4 has order 3^7 Group: G to lower exponent-3 central class 5 has order 3^9 Group: G to lower exponent-3 central class 6 has order 3^11
> F<a, b> := FreeGroup(2); > G := quo< F | a^625 = b^625 = 1, (b, a, b) = 1, > (b, a, a, a, a) = (b, a)^5 >; > q := pQuotient(G, 5, 20: Print := 1, Metabelian := true); Lower exponent-5 central series for G Group: G to lower exponent-5 central class 1 has order 5^2 Group: G to lower exponent-5 central class 2 has order 5^5 Group: G to lower exponent-5 central class 3 has order 5^8 Group: G to lower exponent-5 central class 4 has order 5^11 Group: G to lower exponent-5 central class 5 has order 5^12 Group: G to lower exponent-5 central class 6 has order 5^13 Group: G to lower exponent-5 central class 7 has order 5^14 Group: G to lower exponent-5 central class 8 has order 5^15 Group: G to lower exponent-5 central class 9 has order 5^16 Group: G to lower exponent-5 central class 10 has order 5^17 Group: G to lower exponent-5 central class 11 has order 5^18 Group: G to lower exponent-5 central class 12 has order 5^19 Group: G to lower exponent-5 central class 13 has order 5^20 Group completed. Lower exponent-5 central class = 13, order = 5^20
A nilpotent quotient algorithm constructs, from a finite presentation of a group, a polycyclic presentation for a nilpotent quotient of the finitely presented group. The nilpotent quotient algorithm used by Magma is the ANU Nilpotent Quotient program, as described in [Nic96]. The version included in Magma is Version 2.2 of January 2007.
The lower central series G0, G1, ... of a group G can be defined inductively as G0 = G, Gi = [G_(i - 1), G]. The group G is said to have nilpotency class c if c is the smallest non-zero integer such that Gc = 1. If N is a normal subgroup of G and G/N is nilpotent, then N contains Gi for some non-negative integer i. G has infinite nilpotent quotients if and only if G/G1 (the maximal abelian quotient of G) is infinite and a prime p divides a finite factor of a nilpotent quotient if and only if p divides a cyclic factor of G/G1.
Intrinsics:
NilpotentQuotient (G, c) : The class c nilpotent quotient of G is computed as a group in category GrpGPC, and is returned together with the epimorphism π from G onto this quotient. When c is set to zero, the function attempts to compute the maximal nilpotent quotient of G.
Notes:
> G := Group<x,y,z|(x*y*z^-1)^2, (x^-1*y^2*z)^2, (x*y^-2*x^-1)^2 >; > AbelianQuotient(G); Abelian Group isomorphic to Z/2 + Z/2 + Z Defined on 3 generators Relations: 2*$.1 = 0 2*$.2 = 0 > N := NilpotentQuotient(G,2); N; GrpGPC : N of infinite order on 6 PC-generators PC-Relations: N.1^2 = N.3^2 * N.5, N.2^2 = N.4 * N.6, N.4^2 = Id(N), N.5^2 = Id(N), N.6^2 = Id(N), N.2^N.1 = N.2 * N.4, N.3^N.1 = N.3 * N.5, N.3^N.2 = N.3 * N.6
> F<a,b> := FreeGroup(2); > N<[x]>, pi := NilpotentQuotient(F, 3); > N; GrpGPC : N of infinite order on 5 PC-generators PC-Relations: x[2]^x[1] = x[2] * x[3], x[2]^(x[1]^-1) = x[2] * x[3]^-1 * x[4], x[3]^x[1] = x[3] * x[4], x[3]^(x[1]^-1) = x[3] * x[4]^-1, x[3]^x[2] = x[3] * x[5], x[3]^(x[2]^-1) = x[3] * x[5]^-1Finally the nilpotency class of the quotient sill be confirmed:
> NilpotencyClass(N); 3
> G<a,b> := FPGroup<a,b|a*b*a^-1=b^4>; > N,f := NilpotentQuotient(G,4); > N; GrpGPC : N of infinite order on 5 PC-generators PC-Relations: N.2^3 = N.3^2 * N.4^2 * N.5, N.3^3 = N.4^2 * N.5^2, N.4^3 = N.5^2, N.5^3 = Id(N), N.2^N.1 = N.2 * N.3, N.2^(N.1^-1) = N.2 * N.3^2 * N.4^2 * N.5, N.3^N.1 = N.3 * N.4, N.3^(N.1^-1) = N.3 * N.4^2 * N.5^2, N.4^N.1 = N.4 * N.5, N.4^(N.1^-1) = N.4 * N.5^2 > for i := 1 to Ngens(N) do N.i @@ f; end for; a b (b, a) (b, a, a) (b, a, a, a)
A soluble quotient algorithm computes a consistent power-conjugate presentation (pc-presentation) of the largest finite soluble quotient of an fp-group, subject to certain algorithmic and user supplied restrictions. In this section a description of a basic version of the algorithm available within Magma in given. For more information the user is referred to chapter FINITELY PRESENTED GROUPS.
Intrinsics:
SolvableQuotient/SolubleQuotient (G) : Given an fp-group G, the largest finite soluble quotient Q is returned. The epimorphism φ : G -> Q is also returned.
SolvableQuotient/SolubleQuotient (G, n) : Given an fp-group G and a positive integer n, a soluble quotient Q of order n is returned. The φ : G -> Q is also returned. When the order of Q is known in advance, this version can avoid work in proving that the final quotient is maximal.
SolvableQuotient/SolubleQuotient (G, P) : Given an fp-group G and a sequence P containing primes this intrinsic calculates the largest soluble quotient whose order has prime divisors only in P. The epimorphism φ : G -> Q is also returned. This version is included since finding the possible primes at each step can be very expensive.
Notes:
> G<a,b> := FPGroup< a, b | a^2, b^4, > a*b^-1*a*b*(a*b*a*b^-1)^5*a*b^2*a*b^-2 >; > Q := SolubleQuotient(G); > Q; GrpPC : Q of order 1920 = 2^7 * 3 * 5 PC-Relations: Q.1^2 = Q.4, Q.2^2 = Id(Q), Q.3^2 = Q.6, Q.4^2 = Id(Q), Q.5^2 = Q.7, Q.6^2 = Id(Q), Q.7^2 = Id(Q), Q.8^3 = Id(Q), Q.9^5 = Id(Q), Q.2^Q.1 = Q.2 * Q.3, Q.3^Q.1 = Q.3 * Q.5, Q.3^Q.2 = Q.3 * Q.6, Q.4^Q.2 = Q.4 * Q.5 * Q.6 * Q.7, Q.4^Q.3 = Q.4 * Q.6 * Q.7, Q.5^Q.1 = Q.5 * Q.6, Q.5^Q.2 = Q.5 * Q.7, Q.5^Q.4 = Q.5 * Q.7, Q.6^Q.1 = Q.6 * Q.7, Q.8^Q.1 = Q.8^2, Q.8^Q.2 = Q.8^2, Q.9^Q.1 = Q.9^3, Q.9^Q.2 = Q.9^4, Q.9^Q.4 = Q.9^4
> G<x, y> := FPGroup< x, y | x^3, y^8, (x,y^4), x^-1*y*x^-1*y^-1*x*y*x*y^-1, > (x*y^-2)^2*(x^-1*y^-2)^2*(x*y^2)^2*(x^-1*y^2)^2, (x^-1*y^-2)^6*(x^-1*y^2)^6 >;The soluble quotient algorithm will be applied to G and its order computed.
> time Q := SolubleQuotient(G); Time: 4.620 > Order(Q); 165888Note that 165888 = 211 .34. Knowing the primes in advance makes the computation faster:
> time Q := SolubleQuotient(G, {2, 3}); Time: 1.900Assuming that G is finite the Todd--Coxeter procedure will used to find its order:
> Order(G); 165888Hence the group G is finite, soluble and isomorphic to Q. Since Q is defined by a pc-presentation anything can be computed for it and so it can be used to obtain information about G.
> #ConjugacyClasses(Q); 272So G has 272 conjugacy classes of elements.
The previous four methods for finding epimorphisms of an fp-group G only apply when G has a non-trivial abelian quotient, that is, when G is not perfect. This and the next subsection present methods for the case in which G is perfect. The first method searches through a list of non-abelian simple groups to find simple quotients of G as permutation groups. It is similar to the algorithm used to find homomorphisms of an fp-group onto a permutation group. Currently (2019) the list of target simple groups consists of all non-abelian simple groups having order less than 1010. Such a list is dominated by PSL(2, q)'s with q odd. In the current implementation these PSL(2, q)'s are treated as an infinite family rather than stored individually, and so continue beyond the above limit.
Intrinsics:
SimpleQuotients (G, deg1, deg2, ord1, ord2) :
SimpleQuotients (G, ord1, ord2) :
The homomorphism algorithm is used to find epimorphisms from G onto non-abelian simple groups in a fixed list. The arguments deg1 and deg2 are respectively lower and upper bounds for the degree of the image group. If the degree arguments are not present then bounds of 5 and 1010 are used. The arguments ord1 and ord2 are, respectively, lower and upper bounds for the orders of the image group. (Setting ord2 low enough is particularly important if a quick search is required. If ord1 is not given then it defaults to 1. The return value is a list of sequences containing the epimorphisms found. Each sequence contains epimorphisms onto one simple group.
The parameter Limit limits the number of successful searches to be performed by Homomorphisms. The default value is 1, so by default the search terminates with the first simple group found to be a homomorphic image of G.
Notes:
> G := FPGroup<a, b, c | a^13, b^3, c^2,a = b*c>; > IsPerfect(G); true > L := SimpleQuotients(G, 1, 100, 2, 10^5 : Limit := 2); > #L; 2 > for x in L do CompositionFactors(Image(x[1])); end for; G | A(1, 13) = L(2, 13) 1 G | A(2, 3) = L(3, 3) 1 > L[2,1]; Homomorphism of GrpFP: F into GrpPerm: $, Degree 13, Order 2^4 * 3^3 * 13 induced by F.1 |--> (1, 10, 4, 5, 11, 8, 3, 6, 7, 12, 9, 13, 2) F.2 |--> (2, 10, 4)(3, 6, 7)(5, 11, 13)(8, 12, 9) F.3 |--> (1, 10)(2, 5)(3, 12)(8, 13) > #L[2]; 2
The simple groups L(2,13) and L(3,3) are quotients, with two inequivalent homomorphisms onto the second group. The process mechanism will be used to search for projective unitary groups of order up to 106 and having permutation representations of degree not greater then 100.
> P := SimpleQuotientProcess(G, 1, 100, 2, 10^6 : Family:="PSU"); > IsEmptySimpleQuotientProcess(P); false > eps, info := SimpleEpimorphisms(P); > info; <65, 62400, PSU(3, 4)>
The group PSU(3,4) of order 62400 and degree 65 is a quotient of G. The process is restarted.
> NextSimpleQuotient(~P); > IsEmptySimpleQuotientProcess(P); trueThere are no more unitary group quotients within the given degree and order limits.
Given an fp-group G, the L2-quotient algorithm of Plesken, Fabianska and Jambor computes all quotients of G which are isomorphic to the 2-dimensional linear groups PSL(2, q) or PGL(2, q) simultaneously for any prime power q. The algorithm can handle the case of infinitely many quotients, and also works for very large prime powers. In practice it is fast when the number of generators is small and can be used to show that many fp-groups are infinite. While the simple groups PSL(2, q) represent just one dimension in one family out of 16 families of simple groups, in a given range of orders, they are very numerous compared to other simple groups. See [Jam12] or [Jam15] for more information about the L2-quotient algorithm.
In this chapter only part of the L2-quotient machinery is discussed while computing L3- and U3-quotients is not discussed at all. The reader is referred to chapter FINITELY PRESENTED GROUPS for a complete treatment of the L2/L3/U3-quotient machinery.
The term L2-quotient will include both of the groups PSL(2, q) and PGL(2, q). L2-quotients have their own Magma type: L2Quotient. Some fp-groups G have infinitely many L2-quotients and this is indicated by one of the L2-quotient names L_2(infty^k), L_2(p^(infty^d)), or L_2(infty^(infty^d)).
Intrinsics:
L2Quotients (G) : Given a fp group G, a sequence containing all (L)2-quotients is returned.
GetMatrices (Q) : For a finite L2-quotient Q of G, (that is, a quotient L2(pk) or PGL(2, pk)), this intrinsic returns a matrix group H and a sequence A of 2 x 2 matrices in H, where A[i] corresponds to the i-th generator of G. Note that G -> H, G.i -> A[i] does not in general define a homomorphism, but the induced map G -> H/Z(H) does.
Notes:
> G := FPGroup< a,b | a^2, b^3, (a*b)^7, (a,b)^11 >; > L2Quotients(G); [ L_2(43) ] > H := FPGroup< a,b,c | a^3, b^7, c^19, (a*b)^2, (a*c)^2, (b*c)^2, (a*b*c)^2 >; > L2Quotients(H); [ L_2(113) ]This means that G has PSL(2, 43) as quotient, but no other PSL(2, q) or PGL(2, q) is a quotient of G. Similarly, the only L2-quotient of H is PSL(2, 113).
The next example has more quotients:
> G := FPGroup< a,b | a^2, b^3, (a*b)^16, (a,b)^11 >; > L2Quotients(G); [ PGL(2,23), PGL(2,23), PGL(2,463) ]Here PGL(2, 23) occurs twice. This means that there are two epimorphisms of G onto PGL(2, 23) which do not differ by an automorphism of PGL(2, 23). In other words, the kernels of the epimorphisms are distinct.
> G := FPGroup< a,b,c | a^3, b^7, (a*b)^2, (a*c)^2, (b*c)^2, (a*b*c)^2 >; > L2Quotients(G); [ L_2(infty^6) ] > H := FPGroup<a,b,c | a^3, (a,c)=(c,a^-1), a*b*a=b*a*b, a*b*a*c^-1=c*a*b*a>; > L2Quotients(H); [ L_2(3^infty) ] > K := FPGroup< a,b | a^3*b^3 >; > L2Quotients(K); [ L_2(infty^infty) ]
> H := FPGroup< a,b,c | a^3, b^7, c^19, (a*b)^2, (a*c)^2, (b*c)^2, (a*b*c)^2 >; > quot := L2Quotients(H); quot; [ L_2(113) ] > H, A := GetMatrices(quot[1]); > H; MatrixGroup(2, GF(113)) Generators: [ 0 1] [112 112] [ 0 85] [109 24] [102 104] [ 63 72] > A; [ [ 0 1] [112 112], [ 0 85] [109 24], [102 104] [ 63 72] ]