[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Standard Constructions for Modules

Standard Constructions for Modules

Subsections

Standard Constructions for General Modules

Given one or more existing modules, various standard constructions are available to construct new modules.

ChangeRing(M, S) : ModRng, Rng -> ModRng, Map
Given a module M with base ring R, together with a ring S, construct the module N with base ring S obtained by coercing the components of elements of M into N, together with the homomorphism from M to N.
ChangeRing(M, S, f) : ModRng, Rng, Map -> ModRng, Map
Given a module M with base ring R, together with a ring S, and a homomorphism f: R -> S, construct the module N with base ring S obtained by mapping the components of elements of M into N by f, together with the homomorphism from M to N.
DirectSum(M, N) : ModRng, ModRng -> ModRng, Map, Map, Map, Map
Given R-modules M and N, construct the direct sum D of M and N as an R-module. The embedding maps from M into D and from N into D respectively and the projection maps from D onto M and from D onto N respectively are also returned.
DirectSum(Q) : [ ModRng ] -> [ ModRng ], [ Map ], [ Map ]
Given a sequence Q of R-modules, construct the direct sum D of these modules. The embedding maps from each of the elements of Q into D and the projection maps from D onto each of the elements of Q are also returned.
ExteriorSquare(M) : ModTupRng -> ModTupRng
Given an R-module M, construct the R-submodule of M otimes_R M consisting of the skew tensors.
SymmetricSquare(M) : ModTupRng -> ModTupRng
Given an R-module M, construct the R-submodule of M otimes_R M consisting of the symmetric tensors.
TensorProduct(M, N) : ModTupRng, ModTupRng -> ModTupRng
Given R-modules M and N, construct the R-tensor product, M otimes_R N, with diagonal action.

Example RMod_Constructions (H34E10)

We create two 2-dimensional Q-modules M and N, and apply the constructions to them.

> Q := RationalField();
> Q2 := RSpace(Q, 2);
> R := MatrixRing<Q, 2 | [ 0, 1, -1, 0], [ 0, 1, 1, 0 ] >;
> M := RModule(Q2, R);
> print M:Maximal;
RModule M of dimension 2 over Rational Field
Generators of acting algebra:

[ 0 1] [-1 0]

[0 1] [1 0] > S := MatrixRing<Q, 2 | [ 0, -1, -1, 0 ], [1, 0, 0, -1 ] >; > N := RModule(Q2, S); > print N:Maximal; RModule M of dimension 2 over Rational Field Generators of acting algebra:

[ 0 -1] [-1 0]

[ 1 0] [ 0 -1] > P := DirectSum(M, N); > print P:Maximal; RModule P of dimension 4 over Rational Field Generators of acting algebra:

[ 0 1 0 0] [-1 0 0 0] [ 0 0 0 -1] [ 0 0 -1 0]

[ 0 1 0 0] [ 1 0 0 0] [ 0 0 1 0] [ 0 0 0 -1] > Q := ExteriorSquare(M); > print Q:Maximal; RModule Q of dimension 1 over Rational Field Generators of acting algebra:

[1]

[-1] > T := SymmetricSquare(M); > print T:Maximal; RModule T of dimension 3 over Rational Field Generators of acting algebra:

[ 0 0 1] [ 0 -1 0] [ 1 0 0]

[0 0 1] [0 1 0] [1 0 0] > U := TensorProduct(M, N); > print U:Maximal; RModule U of dimension 4 over Rational Field Generators of acting algebra:

[ 0 0 0 -1] [ 0 0 -1 0] [ 0 1 0 0] [ 1 0 0 0]

[ 0 0 1 0] [ 0 0 0 -1] [ 1 0 0 0] [ 0 -1 0 0]


Changing the Coefficient Ring

ExtendField(V, L) : ModTupFld, Fld -> ModTupFld, MapHom
Given a K-vector space V, with K a field and L an extension of K, construct the L-vector space U = V otimes_K L. The function returns
RestrictField(V, L) : ModTupFld, Fld -> ModTupFld, MapHom
Given a K-vector space V, with K a field and L a subfield of K, construct the L-vector space U consisting of those vectors of V having all of their components lying in the subfield L. The function returns
VectorSpace(V, F) : ModTupFld, Fld -> ModTupFld, Map
KSpace(V, F) : ModTupFld, Fld -> ModTupFld, Map
KModule(V, F) : ModTupFld, Fld -> ModTupFld, Map
KMatrixSpace(V, F) : ModTupFld, Fld -> ModTupFld, Map
Given an n-dimensional K-vector space V, and a subfield F of K such that K has degree m over F, construct a vector space of dimension mn over the field F. The function returns

Standard Constructions for R[G]-Modules

All of the constructions available for general R-modules may be applied to R[G]-modules. A small number of additional constructions are available only for R[G]-modules.

M ^ T : ModGrp, AlgMatElt -> ModGrp
Given an R[G]-module M of dimension n over the ring R, and a nonsingular n x n matrix T over R, construct the R[G]-module S which corresponds to taking the rows of T as a basis for M.

Dual(M) : ModGrp -> ModGrp
Given an R[G]-module M, construct the the R[G]-module which is the R-dual, Hom_R(M, R), of M.

Induction(M, G) : ModGrp, Grp -> ModGrp
Given an R[H]-module M and a supergroup G of H, construct the R[G]-module obtained by inducing M up to G.

Restriction(M, H) : ModGrp, Grp -> ModGrp
Given a R[G]-module M and a subgroup H of G, form the R[H]-module corresponding to the restriction of M to the subgroup H.


Example RMod_GModules1 (H34E11)

Starting with the permutation module M over GF(2) for the Mathieu group M_(24), we construct the restriction N of M to the Sylow 2-subgroup of M_(24).

> M24 := PermutationGroup< 24 |
>         (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24),
>         (2,16,9,6,8)(3,12,13,18,4)(7,17,10,11,22)(14,19,21,20,15),
>         (1,22)(2,11)(3,15)(4,17)(5,9)(6,19)(7,13)(8,20)(10,16)(12,21)
>         (14,18)(23,24)>;
> M := PermutationModule(M24, GaloisField(2));
> print M;
GModule M of dimension 24 with base ring GF(2)
> S2 := SylowSubgroup(M24, 2);
> N := Restriction(M, S2);
> print N;
GModule N of dimension 24 with base ring GF(2)

Example RMod_GModules2 (H34E12)

Starting with the 6-dimensional representation over GF(2) constructed above for A_7, we construct an irreducible 15-dimensional representation for A_7, as the exterior square of the 6-dimensional representation.

> A7 := AlternatingGroup(7);
> V  := VectorSpace(GaloisField(2), 7);
> M  := PermutationModule(A7, V![1,0,1,0,1,0,1]);
> print M;

GModule M of dimension 6 with base ring GF(2) > N := ExteriorSquare(M); > print N : Maximal;

GModule N of dimension 15 with base ring GF(2) Generators of acting algebra:

[0 1 0 0 0 0 1 0 1 0 0 0 0 0 0] [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 1 0 0 0 0 1 1 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 0 0 1 0 0 0 0 0 0] [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] [0 1 0 1 0 1 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 1 0 0 1 1 0 0 0 0 0] [0 0 1 0 1 1 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 1 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 1 0 1] [0 0 1 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 0 0] [0 0 0 0 0 1 0 0 0 0 0 0 1 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 0 1 0 0 0 0] [1 0 0 0 0 0 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 1 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] [0 0 0 0 0 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 0 0 0 1 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 0 0 0 0 0 0 1 0 0] [0 0 1 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 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 1 0 0 0 0 0 0]


[Next] [Prev] [Right] [Left] [Up] [Index] [Root]