Let M and N be A-modules where A is an algebra defined over a field K. Then öm_(A)(M, N) consists of all K-homomorphisms from M to N which commute with the action of A. The type of such (matrix) homomorphisms, called A-homs, is ModMatGrpElt.
The functions is this section currently apply only in the case in which A is an algebra over a finite field.
Given R-modules M and N, create the (map) homomorphism from M to N given by matrix X.
Given matrix space H, which is öm_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.
Given a matrix X belonging to öm_K(M, N), where M and N are A-modules, return true if X is an A-homomorphism.
Given A-modules M and N, construct the vector space of homomorphisms, öm_K(M, N), where K is the field over which A is defined.
Given A-modules M and N, construct the vector space of homomorphisms, öm_A(M, N), as a submodule of öm_K(M, N).
Given A-modules M and N, construct öm_(L[G])(M, N) as a subspace of öm_K(M, N) where L is the centralizing field of M.
> 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 := GF(3); > P := PermutationModule(G, K); > M := sub< P | [1,0,0,0,0,1,0,0,1,0,0,1] >; > M; GModule M of dimension 9 over GF(3) > H := AHom(P, M); > H: 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 := 2*H.1 + H.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 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]
> P := GModule(CyclicGroup(11), GF(3));
> F := Constituents(P);
> F;
[
GModule of dimension 1 over GF(3),
GModule of dimension 5 over GF(3),
GModule of dimension 5 over GF(3)
]
> H1 := GHom(P, F[2]);
> H1;
KMatrixSpace of 2 by 3 matrices and dimension 1 over Rational Field
> H := Hom(H1, H1, "right");
> H: Maximal;
KMatrixSpace of 5 by 5 matrices and dimension 5 over GF(3)
Echelonized basis:
[1 0 0 0 0]
[0 1 0 0 0]
[0 0 1 0 0]
[0 0 0 1 0]
[0 0 0 0 1]
[0 1 0 0 0]
[1 1 1 2 1]
[2 0 2 1 1]
[2 1 0 0 0]
[0 2 1 0 0]
[0 0 1 0 0]
[2 0 2 1 1]
[2 2 2 2 2]
[2 0 1 0 2]
[1 0 1 2 1]
[0 0 0 1 0]
[2 1 0 0 0]
[2 0 1 0 2]
[2 2 1 2 2]
[2 1 1 0 1]
[0 0 0 0 1]
[0 2 1 0 0]
[1 0 1 2 1]
[2 1 1 0 1]
[2 1 0 0 2]
Given a A-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_(A)(M).
Given a A-module M with base ring K, construct Aut(M) as a subgroup G of the general linear group GL(n, K). Thus, G is the group of units of End(M).
True if the R-modules M and N are isomorphic, false otherwise. If M and N are isomorphic, the function also returns a matrix T such that M^(T) = N.
We construct the endomorphism ring for a permutation module over GF(3) for a soluble group of order 648.
> 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) >; > P := PermutationModule(G, GF(3)); > time End := EndomorphismAlgebra(P); Time: 0.100 > End; Matrix Algebra of degree 12 and dimension 3 over GF(3)
Thus, the permutation module P has 27 endomorphisms.
> time Aut := AutomorphismGroup(P);
Time: 0.049
> Aut;
MatrixGroup(12, GF(3))
Generators:
[1 0 0 1 1 1 1 1 1 1 1 1]
[0 1 0 1 1 1 1 1 1 1 1 1]
[0 0 1 1 1 1 1 1 1 1 1 1]
[1 1 1 1 0 0 1 1 1 1 1 1]
[1 1 1 0 1 0 1 1 1 1 1 1]
[1 1 1 0 0 1 1 1 1 1 1 1]
[1 1 1 1 1 1 1 0 0 1 1 1]
[1 1 1 1 1 1 0 1 0 1 1 1]
[1 1 1 1 1 1 0 0 1 1 1 1]
[1 1 1 1 1 1 1 1 1 1 0 0]
[1 1 1 1 1 1 1 1 1 0 1 0]
[1 1 1 1 1 1 1 1 1 0 0 1]
[2 1 1 0 0 0 0 0 0 0 0 0]
[1 2 1 0 0 0 0 0 0 0 0 0]
[1 1 2 0 0 0 0 0 0 0 0 0]
[0 0 0 2 1 1 0 0 0 0 0 0]
[0 0 0 1 2 1 0 0 0 0 0 0]
[0 0 0 1 1 2 0 0 0 0 0 0]
[0 0 0 0 0 0 2 1 1 0 0 0]
[0 0 0 0 0 0 1 2 1 0 0 0]
[0 0 0 0 0 0 1 1 2 0 0 0]
[0 0 0 0 0 0 0 0 0 2 1 1]
[0 0 0 0 0 0 0 0 0 1 2 1]
[0 0 0 0 0 0 0 0 0 1 1 2]
[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]
> #Aut;
18
> IsAbelian(Aut);
true
> AbelianInvariants(Aut);
[ 2, 3, 3 ]
The module has 18 automorphisms. The automorphism group is isomorphic to the abelian group Z_2 x Z_3 x Z_3.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]