Let M and N be R[G]-modules. Then Hom_(R[G])(M, N) consists of
all R-homomorphisms from M to N which preserve the action of G.
The type of such (matrix) homomorphisms, called G-homs, is
ModMatGrpElt.
EndomorphismAlgebra(M) : ModRng -> AlgMat
Given a R-module M with base ring K, construct End(M) as a subring E of the complete matrix ring K^((n x n)). The generators constructed for E form a K-basis for End_(R)(M).
Given an m-dimensional K[G]-module M and an n-dimensional K[G]-module N, K a finite field, construct Hom_(K[G])(M, N) as a submodule of Hom_K(M, N).
Given an m-dimensional K[G]-module M and an n-dimensional K[G]-module N, K a finite field, construct Hom_(L[G])(M, N) as a submodule of Hom_K(M, N) where L is the centralizing field of M.
Given an m-dimensional R-module M and an n-dimensional R-module N, construct Hom_R(M, N).
Given matrix X from Hom_K(M, N), where M and N are G-modules, return whether X is a G-hom, i.e. X is in GHom(M, N).
Given R-modules M and N, create the (map) homomorphism from M to N given by matrix X.
Given matrix space H, which is Hom_R(M, N) for R-modules M and N, together with a homomorphism f from M to N, create the matrix corresponding to the map f.
(a) If the R-module M was created as a submodule of the module N, return the inclusion homomorphism phi : M -> N as an element of Hom_R(M, N). Thus phi gives the correspondence between elements of M (represented with respect to the standard basis of M) and elements for N.(b) If the R-module N was created as a quotient module of the module M, return the natural homomorphism phi : M -> N as an element of Hom_R(M, N). Thus phi gives the correspondence between elements of M and elements of N (represented with respect to the standard basis for N).
Given a matrix X which describes a basis for a submodule of M (i.e. X describes an invariant subspace under the action of M), return the submodule S of M such that the morphism of S into M is X.
> G := PermutationGroup< 12 | > (1,6,7)(2,5,8,3,4,9)(11,12), > (1,3)(4,9,12)(5,8,10,6,7,11) >; > K := GaloisField(3); > P := PermutationModule(G, K); > ER := EndomorphismAlgebra(P); > ER : Maximal; Matrix Algebra of degree 12 and dimension 3 over GF(3) Basis:
[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 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 1 0 0 0 0 0 0 0 0 0] [1 0 1 0 0 0 0 0 0 0 0 0] [1 1 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 1 1 0 0 0 0 0 0] [0 0 0 1 0 1 0 0 0 0 0 0] [0 0 0 1 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 1 1 0 0 0] [0 0 0 0 0 0 1 0 1 0 0 0] [0 0 0 0 0 0 1 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 1 1] [0 0 0 0 0 0 0 0 0 1 0 1] [0 0 0 0 0 0 0 0 0 1 1 0]
[0 0 0 1 1 1 1 1 1 1 1 1] [0 0 0 1 1 1 1 1 1 1 1 1] [0 0 0 1 1 1 1 1 1 1 1 1] [1 1 1 0 0 0 1 1 1 1 1 1] [1 1 1 0 0 0 1 1 1 1 1 1] [1 1 1 0 0 0 1 1 1 1 1 1] [1 1 1 1 1 1 0 0 0 1 1 1] [1 1 1 1 1 1 0 0 0 1 1 1] [1 1 1 1 1 1 0 0 0 1 1 1] [1 1 1 1 1 1 1 1 1 0 0 0] [1 1 1 1 1 1 1 1 1 0 0 0] [1 1 1 1 1 1 1 1 1 0 0 0] > // Thus, the permutation module P has 27 endomorphisms. > // We now find a maximal submodule M of P and calculate GHom(M, P). > MS := MaximalSubmodules(P); > MS; [ GModule of dimension 9 with base ring GF(3), GModule of dimension 11 with base ring GF(3) ] > M := MS[1]; > HR := GHom(P, M); > HR: Maximal; KMatrixSpace of 12 by 9 GHom matrices and dimension 2 over GF(3) Echelonized basis: [1 1 1 0 0 0 0 0 0] [1 1 1 0 0 0 0 0 0] [1 1 1 0 0 0 0 0 0] [0 0 0 1 1 0 0 0 0] [0 0 0 1 1 0 0 0 0] [0 0 0 1 1 0 0 0 0] [0 0 0 0 0 1 1 0 0] [0 0 0 0 0 1 1 0 0] [0 0 0 0 0 1 1 0 0] [0 0 0 0 0 0 0 1 1] [0 0 0 0 0 0 0 1 1] [0 0 0 0 0 0 0 1 1]
[0 0 0 1 1 1 1 1 1] [0 0 0 1 1 1 1 1 1] [0 0 0 1 1 1 1 1 1] [1 1 1 0 0 1 1 1 1] [1 1 1 0 0 1 1 1 1] [1 1 1 0 0 1 1 1 1] [1 1 1 1 1 0 0 1 1] [1 1 1 1 1 0 0 1 1] [1 1 1 1 1 0 0 1 1] [1 1 1 1 1 1 1 0 0] [1 1 1 1 1 1 1 0 0] [1 1 1 1 1 1 1 0 0] > // We write down a random homomorphism from M to P. > f := (K!2)*HR.1 + HR.2; > f; [2 2 2 1 1 1 1 1 1] [2 2 2 1 1 1 1 1 1] [2 2 2 1 1 1 1 1 1] [1 1 1 2 2 1 1 1 1] [1 1 1 2 2 1 1 1 1] [1 1 1 2 2 1 1 1 1] [1 1 1 1 1 2 2 1 1] [1 1 1 1 1 2 2 1 1] [1 1 1 1 1 2 2 1 1] [1 1 1 1 1 1 1 2 2] [1 1 1 1 1 1 1 2 2] [1 1 1 1 1 1 1 2 2] > Ker := Kernel(f); > Ker; GModule Ker of dimension 8 with base ring GF(3) > // If we print the morphism associated with Ker, we will see generators > // for Ker as a submodule of P. > Morphism(Ker, P); [1 0 2 0 0 0 0 0 0 0 0 0] [0 1 2 0 0 0 0 0 0 0 0 0] [0 0 0 1 0 2 0 0 0 0 0 0] [0 0 0 0 1 2 0 0 0 0 0 0] [0 0 0 0 0 0 1 0 2 0 0 0] [0 0 0 0 0 0 0 1 2 0 0 0] [0 0 0 0 0 0 0 0 0 1 0 2] [0 0 0 0 0 0 0 0 0 0 1 2] > // Examine the image of f and its morphism to P. > Im := Image(f); > Im; GModule Im of dimension 4 with base ring GF(3) > Morphism(Im, P); [1 1 1 0 0 0 0 0 0 0 0 0] [0 0 0 1 1 1 0 0 0 0 0 0] [0 0 0 0 0 0 1 1 1 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1]