Magma provides extensive facilities for defining and computing with R[G]-modules, where G is a finite group and R is a ring. Owing to the importance of R[G]-modules and also because of the existence of effective computational methods, a richer class of functions is provided for computing with such modules (particularly in the case where R is a finite field). In order for these functions to be applicable to a module M, it is necessary for M to be defined using one of the creation functions listed here. Thus, unless otherwise stated, when referring to a R[G]-module, we will assume that the module has been created using one of the functions defined here. The system supports the creation of R[G]-modules, where R is a principal ideal domain (PID). However, the user should note that some specialist functions for R[G]-modules are only applicable to K[G]-modules, where G is a finite group and K is a finite field.
An R[G]-module of dimension m is always represented with respect to
the standard basis for the vector space of dimension m.
GModule(G, S) : Grp, AlgMat -> ModGrp
Let G be a group defined on r generators and let S be a subalgebra of the matrix algebra M_n(R), also defined by r non-singular matrices. It is assumed that the mapping from G to S defined by phi(G.i) |-> S.i, for i = 1, ..., r, is a group homomorphism. Let M be the natural module for the matrix algebra S. The function GModule gives M the structure of an S[G]-module, where the action of the i-th generator of G on M is given by the i-th generator of S.
Let G be a group defined on r generators and let Q be a sequence of r invertible elements of M_n(R) or GL(n, R). It is assumed that the mapping from G to Q defined by phi(G.i) |-> Q[i], for i = 1, ..., r, is a group homomorphism.
Given a finite permutation group G and a ring R, create the natural permutation module for G over R.
Given a matrix group G defined as a subgroup of the group of units of the ring End_R(M), where R is a PID, create the natural R[G]-module for G.
Given a finite group G, a normal subgroup A of G and a normal subgroup B of A such that the section A/B is elementary abelian of order p^n, create the K[G]-module M corresponding to the action of G on A/B, where K is the field GF(p). If B is trivial, it may be omitted. The function returns
- the module M; and
- the homomorphism phi : A/B -> M.
Given a finite permutation or matrix group G of degree n, a polynomial ring P=K[x_1, ..., x_n] over a field K, and a non-negative integer d, create the K[G]-module M corresponding to the action of G on the space of homogeneous polynomials of degree d of the polynomial ring P. The function also returns the isomorphism f between the space of homogeneous polynomials of degree d of P and M, together with an indexed set of monomials of degree d of P which correspond to the columns of M.
Given a finite permutation or matrix group G of degree n, an ideal I of a multivariate polynomial ring P=K[x_1, ..., x_n] over a field K, and a zero-dimensional subideal J of I, create the K[G]-module M corresponding to the action of G on the finite-dimensional quotient I/J. The function also returns the isomorphism f between the quotient space I/J and M, together with an indexed set of monomials of P, forming a (vector space) basis of I/J, and which correspond to the columns of M.
Given a finite permutation or matrix group G of degree n, and a finite-dimensional quotient ring Q=I/J of a multivariate polynomial ring P=K[x_1, ..., x_n] over a field K, create the K[G]-module M corresponding to the action of G on the finite-dimensional quotient Q. The function also returns the isomorphism f between the quotient ring Q and M, together with an indexed set of monomials of P, forming a (vector space) basis of Q, and which correspond to the columns of M.
Given a finite group G and a ring R, create the R[G]-module for G corresponding to the permutation action of G on the cosets of H.
Given a finite permutation group G and a ring R, create the natural permutation module for G over R.
Given a finite permutation group G of degree n and the module M, create the natural permutation module for G on M.
Given a finite permutation group G of degree n, and a vector u belonging to the free S-module M = R^n where S is a PID, construct the R[G]-module corresponding to the action of G on the R-submodule of M generated by the set of vectors obtained by applying the permutations of G to the vector u.
Create the trivial R[G]-module for the finite group G.
> PSL27 := PermutationGroup< 8 | (2,3,5)(6,7,8), (1,2,4)(3,5,6) >; > S := MatrixAlgebra< FiniteField(2), 3 | > [ 0,1,0, 1,1,1, 0,0,1 ], [ 1,1,1, 0,1,1, 0,1,0 ] >; > M := GModule(PSL27, S); > M: Maximal; GModule M of dimension 3 with base ring GF(2) Generators of acting algebra:
[0 1 0] [1 1 1] [0 0 1]
[1 1 1] [0 1 1] [0 1 0]
> M12 := PermutationGroup<12 | > (1,2,3,4,5,6,7,8,9,10,11), > (1,12,5,2,9,4,3,7)(6,10,11,8) >; > M := PermutationModule(M12, FiniteField(2)); > M : Maximal; GModule M of dimension 12 with base ring GF(2) Generators of acting algebra:
[0 1 0 0 0 0 0 0 0 0 0 0] [0 0 1 0 0 0 0 0 0 0 0 0] [0 0 0 1 0 0 0 0 0 0 0 0] [0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 1 0 0 0 0 0 0] [0 0 0 0 0 0 1 0 0 0 0 0] [0 0 0 0 0 0 0 1 0 0 0 0] [0 0 0 0 0 0 0 0 1 0 0 0] [0 0 0 0 0 0 0 0 0 1 0 0] [0 0 0 0 0 0 0 0 0 0 1 0] [1 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0 0 0 1] [0 0 0 0 0 0 0 0 1 0 0 0] [0 0 0 0 0 0 1 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] [0 0 0 0 0 0 0 0 0 1 0 0] [1 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 1 0 0 0 0 0 0] [0 0 0 1 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 1 0] [0 0 0 0 0 0 0 1 0 0 0 0] [0 0 0 0 1 0 0 0 0 0 0 0]
> A7 := AlternatingGroup(7); > V := VectorSpace(FiniteField(2), 7); > x := V![1,0,1,0,1,0,1]; > M := PermutationModule(A7, x); > M : Maximal; GModule of dimension 6 with base ring GF(2) Generators of acting algebra:
[1 0 1 0 0 0] [0 0 1 0 1 0] [0 1 1 0 0 0] [0 0 1 0 0 0] [0 0 1 1 0 0] [0 0 1 0 0 1]
[0 0 0 0 0 1] [0 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 1 0 0 0]
> G := MatrixGroup<5, FiniteField(3) | > [ 2,1,2,1,2, 2,0,0,0,2, 0,2,0,0,0, 0,1,2,0,1, 1,0,2,2,1], > [ 2,1,0,2,1, 1,2,0,2,2, 1,1,2,1,1, 0,2,0,1,1, 1,1,2,2,2] >; > Order(G); 7920 > > M := GModule(G); > M : Maximal; GModule M of dimension 5 with base ring GF(3) Generators of acting algebra:
[2 1 2 1 2] [2 0 0 0 2] [0 2 0 0 0] [0 1 2 0 1] [1 0 2 2 1]
[2 1 0 2 1] [1 2 0 2 2] [1 1 2 1 1] [0 2 0 1 1] [1 1 2 2 2]
> G := WreathProduct(AlternatingGroup(4), CyclicGroup(3)); > G := PCGroup(G); > G; Group G of order 5184 = 2^ 6 * 3^ 4 Relations: G.1^3 = Id(G), G.2^3 = Id(G), G.3^3 = Id(G), G.4^3 = Id(G), G.5^2 = Id(G), G.6^2 = Id(G), G.7^2 = Id(G), G.8^2 = Id(G), G.9^2 = Id(G), G.10^2 = Id(G), G.2^G.1 = G.2 * G.3 * G.4^2, G.3^G.2 = G.3 * G.4^2, G.5^G.1 = G.6, G.5^G.2 = G.8, G.5^G.3 = G.5 * G.6, G.5^G.4 = G.6, G.6^G.1 = G.5 * G.6, G.6^G.2 = G.6 * G.10, G.6^G.3 = G.5, G.6^G.4 = G.5 * G.6, G.7^G.2 = G.5, G.7^G.3 = G.6 * G.9, G.7^G.4 = G.6 * G.9, G.8^G.2 = G.7, G.8^G.4 = G.6 * G.10, G.9^G.1 = G.5 * G.9, G.9^G.2 = G.10, G.9^G.3 = G.5 * G.6 * G.7 * G.9, G.9^G.4 = G.5 * G.7 * G.9, G.10^G.1 = G.5 * G.10, G.10^G.2 = G.9 * G.10, G.10^G.3 = G.5 * G.6 * G.10, G.10^G.4 = G.5 * G.8 * G.10 > A := pCore(G, 2); > A; GrpPC of order 64 = 2^6 Relations: A.1^2 = Id(A), A.2^2 = Id(A), A.3^2 = Id(A), A.4^2 = Id(A), A.5^2 = Id(A), A.6^2 = Id(A) > M := GModule(G, A, sub<G|>); > M; GModule of dimension 6 with base ring GF(2)
> MakeMod := function(A, G) > // Make G-module M of G acting on A by conjugation > k := CoefficientRing(A); > d := Dimension(A); > S := RMatrixSpace(A, k); > return GModule( > G, > [ > MatrixAlgebra(k, d) | > &cat[ > Coordinates(S, S.j^g): j in [1 .. d] > ] where g is G.i: i in [1 .. Ngens(G)] > ] > ); > end function; > > MakeGroup := function(A) > // Make group G from upper-triangular matrix algebra A > k := CoefficientRing(A); > n := Degree(A); > return MatrixGroup<n, k | [Eltseq(1 + A.i): i in [1 .. Ngens(A)]]>; > end function; > > k := GF(3); > n := 4; > M := MatrixAlgebra(k, n); > A := sub<M | > [0,2,1,1, 0,0,1,1, 0,0,0,1, 0,0,0,0], > [0,1,0,0, 0,0,2,2, 0,0,0,1, 0,0,0,0]>; > G := MakeGroup(A); > G; MatrixGroup(4, GF(3)) of order 3^4 Generators: [1 2 1 1] [0 1 1 1] [0 0 1 1] [0 0 0 1]
[1 1 0 0] [0 1 2 2] [0 0 1 1] [0 0 0 1] > M := MakeMod(A, G); > M: Maximal; GModule M of dimension 5 over GF(3) Generators of acting algebra:
[1 1 1 2 0] [0 1 1 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1]
[1 2 2 2 0] [0 1 1 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1]