A number of functions are provided which construct various classical groups.
The effect of these functions is to define the group in terms of a set of
generating matrices.
GeneralLinearGroup(n, q) : RngIntElt, RngIntElt -> GrpMat
Construct the general linear group GL(n, K), where K = GF(q) and V is an n-dimensional vector space over K.
Construct the special linear group SL(n, K), where K = GF(q) and V is an n-dimensional vector space over K.
Construct the general unitary group GU(n, K) corresponding to the n-dimensional vector space V over the field K = GF(q^2), where n >= 2 and q is a prime power.
Construct the special unitary group SU(n, K) corresponding to the n-dimensional vector space V over the field K = GF(q^2), where n >= 2 and q is a prime power.
Construct the symplectic group Sp(n, q), where K = GF(q), V is an n-dimensional vector space over K, and n is an even integer greater than or equal to 4.
Construct the Suzuki simple group Sz(q), where q is of the form 2^(2n + 1). If K is given, its cardinality is q. If V is given, it must be 4-dimensional, and over K.
> F<u> := FiniteField(8); > G := SymplecticGroup(10, F); > print G; MatrixGroup(10, GF(2, 3)) Generators: [ u 0 0 0 0 0 0 0 0 0] [ 0 1 0 0 0 0 0 0 0 0] [ 0 0 1 0 0 0 0 0 0 0] [ 0 0 0 1 0 0 0 0 0 0] [ 0 0 0 0 u 0 0 0 0 0] [ 0 0 0 0 0 u 0 0 0 0] [ 0 0 0 0 0 0 1 0 0 0] [ 0 0 0 0 0 0 0 1 0 0] [ 0 0 0 0 0 0 0 0 1 0] [ 0 0 0 0 0 0 0 0 0 u^6][0 0 0 1 1 1 0 0 0 0] [1 0 0 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0 0 0] [0 0 1 0 0 0 0 0 0 0] [0 0 0 1 0 0 0 0 0 0] [0 0 0 0 1 0 1 0 0 0] [0 0 0 0 0 0 0 1 0 0] [0 0 0 0 0 0 0 0 1 0] [0 0 0 0 0 0 0 0 0 1] [0 0 0 0 1 0 0 0 0 0]
> F<w> := FiniteField(128); > V := VectorSpace(F, 4); > S := SuzukiGroup(V); > print S; MatrixGroup(4, GF(2, 7)) Generators: [0 0 0 1] [0 0 1 0] [0 1 0 0] [1 0 0 0][ w^8 0 0 0] [ 0 w^120 0 0] [ 0 0 w^7 0] [ 0 0 0 w^119]
[ 1 0 0 0] [ w^8 1 0 0] [ 0 w 1 0] [w^17 w^9 w^8 1] > print Order(S); 34093383680 > print FactoredOrder(S); [ <2, 14>, <5, 1>, <29, 1>, <113, 1>, <127, 1> ]
Given two matrix groups G and H of degrees m and n respectively, construct the direct product of G and H as a matrix group of degree m + n.
Given a sequence Q of n matrix groups, construct the direct product Q[1] x Q[2] x ... x Q[n] as a matrix group of degree equal to the sum of the degrees of the groups Q[i], (i = 1, ..., n).
Given a matrix group G and a permutation group H, construct the tensor product G tensor H of G and H.
Given a matrix group G and a permutation group H, construct the wreath product G wreath H of G and H.
> K<w> := FiniteField(4); > G := SpecialUnitaryGroup(3, K); > D := DirectProduct(G, G); > print D; MatrixGroup(6, GF(2, 2)) Generators: [ 1 w w 0 0 0] [ 0 1 w^2 0 0 0] [ 0 0 1 0 0 0] [ 0 0 0 1 0 0] [ 0 0 0 0 1 0] [ 0 0 0 0 0 1][w 1 1 0 0 0] [1 1 0 0 0 0] [1 0 0 0 0 0] [0 0 0 1 0 0] [0 0 0 0 1 0] [0 0 0 0 0 1]
[ 1 0 0 0 0 0] [ 0 1 0 0 0 0] [ 0 0 1 0 0 0] [ 0 0 0 1 w w] [ 0 0 0 0 1 w^2] [ 0 0 0 0 0 1]
[1 0 0 0 0 0] [0 1 0 0 0 0] [0 0 1 0 0 0] [0 0 0 w 1 1] [0 0 0 1 1 0] [0 0 0 1 0 0] > print Order(D); 46656 > H := SymmetricGroup(3); > E := WreathProduct(G, H); > print Degree(E); 9 > print Order(E); 60466176 > F := TensorProduct(G, H); > print Degree(F); 27 > print Order(F); 6718464