Submodules#

Construction of 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:

If \(M\) has been created using the function RSpace, then every submodule of \(M\) is given in terms of a generating set consisting of elements of \(M\), i.e. by means of an embedded generating set.

If \(M\) has been created using the function RModule, then every submodule of \(M\) is given in terms of a reduced basis.

sub<M | L>: ModTupRng, List -> ModTupRng#
sub<M | L>: ModMatRng, List -> ModMatRng#

Given an \(R\)-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:

(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 \(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\) and the inclusion homomorphism \(f : N \rightarrow M\).

Example: Submodule (ex-e4a021)#

We construct a submodule of the \(4\)-dimensional vector space over the field of rational function \(F[x]\), where \(F\) is \({\bf F}_{5}\).

> P := PolynomialRing(GF(5));
> R<x> := FieldOfFractions(P);
> M := RSpace(R, 4);
> N := sub< M | [1, x, 1-x, 0], [1+2*x-x^2, 2*x, 0, 1-x^4 ] >;
> N;
Vector space of degree 4, dimension 2 over Field of Fractions in x over
Univariate Polynomial Algebra over GF(5)
Generators:
(1    x    4*x + 1    0)
(4*x^2 + 2*x + 1    2*x    0    4*x^4 + 1)
Echelonized basis:
(1  0  3/(x + 4)  (x^3 + x^2 + x + 1) / (x + 4))
(0  1  (4*x^2 + 2*x + 1) / (x^2 + 4*x)  (4*x^3 + 4*x^2 + 4*x + 4) / (x^2 + 4*x))

Run in calculator

Operations on Submodules#

Membership and Equality#

The following operations are only available for submodules of \(R^{(n)}\), \({\operatorname{Hom}}_R(M, N)\) and \(R[G]\), where \(R\) is a Euclidean Domain. If the modules involved are \(R[G]\)-modules, the operators refer to the underlying \(R\)-module.

u in M: ModTupRngElt, ModTupRng -> BoolElt#
u in M: ModMatRngElt, ModMatRng -> BoolElt#

Returns true if the element \(u\) lies in the \(R\)-module \(M\), where \(u\) and \(M\) belong to the same \(R\)-module.

u notin M: ModTupRngElt, ModTupRng -> BoolElt#
u notin M: ModMatRngElt, ModMatRng -> BoolElt#

Returns true if the element \(u\) does not lie in the \(R\)-module \(M\), where \(u\) and \(M\) belong to the same \(R\)-module.

N subset M: ModTupRng, ModTupRng -> BoolElt#
N subset M: ModMatRng, ModMatRng -> BoolElt#

Returns true if the \(R\)-module \(N\) is contained in the \(R\)-module \(M\), where \(M\) and \(N\) belong to a common \(R\)-module.

N notsubset M: ModTupRng, ModTupRng -> BoolElt#
N notsubset M: ModMatRng, ModMatRng -> BoolElt#

Returns true if the \(R\)-module \(N\) is not contained in the \(R\)-module \(M\), where \(M\) and \(N\) belong to a common \(R\)-module.

N eq M: ModTupRng, ModTupRng -> BoolElt#
M eq N: ModMatRng, ModMatRng -> BoolElt#

Returns true if the \(R\)-modules \(N\) and \(M\) are equal, where \(N\) and \(M\) belong to a common \(R\)-module.

N ne M: ModTupRng, ModTupRng -> BoolElt#
M ne N: ModMatRng, ModMatRng -> BoolElt#

Returns true if the \(R\)-modules \(N\) and \(M\) are not equal, where \(N\) and \(M\) belong to a common \(R\)-module.

Operations on Submodules#

The following operations are only available for submodules of \(R^{(n)}\), \({\operatorname{Hom}}_R(M, N)\) and \(R[G]\), where \(R\) is a Euclidean Domain. If the modules involved are \(R[G]\)-modules, the operators refer to the underlying \(R\)-module.

M + N: ModTupRng, ModTupRng -> ModTupRng#
M + N: ModMatRng, ModMatRng -> ModMatRng#

Sum of the submodules \(M\) and \(N\), where \(M\) and \(N\) belong to a a common \(R\)-module.

M meet N: ModTupRng, ModTupRng -> ModTupRng#
M meet N: ModMatRng, ModMatRng -> ModMatRng#

Intersection of the submodules \(M\) and \(N\), where \(M\) and \(N\) belong to a common \(R\)-module.