Submodules and Quotient Modules

Contents

Construction

sub<M | L> : ModRng, List -> ModRng
Given an A-module M, construct the submodule N generated by the elements of M specified by the list L. Each term Li of the list L must be an expression defining an object of one of the following types:
(a)
A sequence of n elements of R defining an element of M;
(b)
A set or sequence whose terms are elements of M;
(c)
A submodule of M;
(d)
A set or sequence whose terms are submodules of M.

The generators stored for N consist of the elements specified by terms Li together with the stored generators for submodules specified by terms of Li. 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
    Check: BoolElt                      Default: true
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 φ : M -> N as an element of HomA(M, N). Thus, φ gives the correspondence between elements of M (represented with respect to the standard basis of M) and elements for N.

Example ModAlg_Submodule (H97E15)

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));
> M;
GModule M of dimension 21 over 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 : ModRngElt, ModRng -> BoolElt
Returns true if the element u lies in the A-module M.
N subset M : ModRng, ModRng -> BoolElt
Returns true if the A-module N is contained in the A-module M.
N eq M : ModRng, ModRng -> BoolElt
Returns 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 : ModRng, ModRng -> ModRng
Sum of the submodules M and N, where M and N belong to a a common A-module.
M meet N : ModRng, ModRng -> ModRng
Intersection of the submodules M and N, where M and N belong to a common A-module.

Quotient Modules

quo<M | L> : ModRng, List -> ModRng
Given an A-module M, construct the quotient module P = M/N as an A-module, where N is the submodule generated by the elements of M specified by the list L. Each term Li of the list L must be an expression defining an object of one of the following types:
(a)
A sequence of n elements of R defining an element of M;

(b)
A set or sequence whose terms are elements of M;

(c)
A submodule of M;

(d)
A set or sequence whose terms are submodules of M.

The generators constructed for N consist of the elements specified by terms Li together with the stored generators for submodules specified by terms of Li. The constructor returns the quotient module P as an A-module together with the natural homomorphism f : M -> P.

Morphism(M, N) : ModRng, ModRng -> ModMatRngElt
If the A-module N was created as a quotient module of the module M, return the natural homomorphism φ : M -> N as an element of HomR(M, N). Thus φ gives the correspondence between elements of M and elements of N (represented with respect to the standard basis for N).

Example ModAlg_QuotientModule (H97E16)

We construct a quotient module of the permutation module for L(3, 4) considered above.
> 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;
GModule N of dimension 9 over GF(2)
> Q, phi := quo< M | x >;
> Q;
GModule Q of dimension 12 over GF(2)

We locate the kernel of the epimorphism φ and check that it is the same as N.

> K :=  Kernel(phi);
GModule Ker of dimension 9 over GF(2)
> K eq N;
true

Given an element x in the codomain Q of the epimorphism φ, the value returned as the preimage of x is a representative element of the coset of the kernel that is the actual preimage of x. Since we are working in a module over a finite field, we can explicitly construct the full preimage PreIm of x.

> x := Q![0,0,0,1,1,0,0,0,0,1,0,0];
> PreIm := { x@@phi + k : k in K };
> #PreIm;
512
V2.28, 13 July 2023