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

Submodules

Submodules may be defined for any type of module. However, functions that depend upon membership testing are only implemented for modules over Euclidean Domains (EDs). The conventions defining the presentations of submodules are as follows:

Subsections

Construction

sub<M | L> : ModTupRng, List -> ModTupRng
Given an A-module M, construct the submodule N generated by the elements of M specified by the list L. Each term L_i of the list L must be an expression defining an object of one of the following types:

The generators stored for N consist of the elements specified by terms L_i together with the stored generators for submodules specified by terms of L_i. Repetitions of an element and occurrences of the zero element are removed (unless N is trivial).

The constructor returns the submodule N as an A-module together with the inclusion homomorphism f : N -> M.

ImageWithBasis(X, M) : ModMatRngElt, ModRng -> ModRng
Given a basis matrix X for a A-submodule of the A-module M, return the submodule N of M such that the morphism of N into M is X.
Morphism(M, N) : ModRng, ModRng -> ModMatRngElt
If the A-module M was created as a submodule of the module N, return the inclusion homomorphism phi : M -> N as an element of Hom_A(M, N). Thus, phi gives the correspondence between elements of M (represented with respect to the standard basis of M) and elements for N.

Example ModAlg_Submodule (H77E3)

We construct a submodule of the permutation module for L(3, 4) in its representation of degree 21.

> G := PSL(3, 4);
> M := PermutationModule(G, GF(2));
> x := M![0,0,0,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,0,0,1];
> N := sub< M | x >;
> N:Maximal;
GModule N of dimension 9 over GF(2)
Generators of acting algebra:


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


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

Note that as a GF(2)-module V has dimension 1, while as a K[G]-module it has dimension 9. The submodule N is defined on a reduced basis so we use Morphism to see N embedded in M.

> phi := Morphism(N, M);
> [ phi(x) : x in Basis(N) ];
[
    M: (1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1),
    M: (0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1),
    M: (0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0),
    M: (0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1),
    M: (0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1),
    M: (0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0),
    M: (0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0),
    M: (0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1),
    M: (0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1)
]

Membership and Equality

The operators described below refer to the underlying vector space.

u in M : ModTupRngElt, ModTupRng -> BoolElt
True if the element u lies in the A-module M.
N subset M : ModTupRng, ModTupRng -> BoolElt
True if the A-module N is contained in the A-module M.
N eq M : ModTupRng, ModTupRng -> BoolElt
True if the A-modules N and M are equal, where N and M are contained in a common A-module.

Operations on Submodules

M + N : ModTupRng, ModTupRng -> ModTupRng
Sum of the submodules M and N, where M and N belong to a a common A-module.
M meet N : ModTupRng, ModTupRng -> ModTupRng
Intersection of the submodules M and N, where M and N belong to a common A-module.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]