submodules
We can create submodules by using standard mathematical notation, keeping in mind that the generators of a module
M are denoted by
M_0, M_1, etc.
i1 : R = QQ[x,y,z];
|
i2 : M = R^3
3
o2 = R
o2 : R-module, free
|
i3 : I = ideal(x^2,y^2-x*z)
2 2
o3 = ideal (x , y - x*z)
o3 : Ideal of R
|
Here are some examples of submodules of
M.
i4 : I*M
o4 = image | x2 0 0 y2-xz 0 0 |
| 0 x2 0 0 y2-xz 0 |
| 0 0 x2 0 0 y2-xz |
3
o4 : R-module, submodule of R
|
i5 : R*M_0
o5 = image | 1 |
| 0 |
| 0 |
3
o5 : R-module, submodule of R
|
i6 : I*M_1
o6 = image | 0 0 |
| x2 y2-xz |
| 0 0 |
3
o6 : R-module, submodule of R
|
i7 : J = I*M_1 + R*y^5*M_1 + R*M_2
o7 = image | 0 0 0 0 |
| x2 y2-xz y5 0 |
| 0 0 0 1 |
3
o7 : R-module, submodule of R
|
To determine if one submodule is contained in the other, use
isSubset(Module,Module).
i8 : isSubset(I*M,M)
o8 = true
|
i9 : isSubset((x^3-x)*M,x*M)
o9 = true
|
Another way to construct submodules is to take the kernel or image of a matrix.
i10 : F = matrix{{x,y,z}}
o10 = | x y z |
1 3
o10 : Matrix R <-- R
|
i11 : image F
o11 = image | x y z |
1
o11 : R-module, submodule of R
|
i12 : kernel F
o12 = image {1} | -y 0 -z |
{1} | x -z 0 |
{1} | 0 y x |
3
o12 : R-module, submodule of R
|
The module
M does not need to be a free module. We will see examples below.
quotients
If N is a submodule of M, construct the quotient using
Module / Module.
i13 : F = R^3
3
o13 = R
o13 : R-module, free
|
i14 : F/(x*F+y*F+R*F_2)
o14 = cokernel | x 0 0 y 0 0 0 |
| 0 x 0 0 y 0 0 |
| 0 0 x 0 0 y 1 |
3
o14 : R-module, quotient of R
|
When constructing M/N, it is not necessary that M be a free module, or a quotient of a free module. In this case, we obtain a subquotient module, which we describe below.