An object of type MODULE in CoCoA represents a submodule of a free
module. A module is represented by its generators as:
Module(V_1,...,V_n)
Each V_i has the form [P_1,...P_r], where r is the rank of the free
module containing the given module and each P_j is of type POLY.
As with ideals, information about a module can be accessed using the
same syntax as for records.
CoCoA supports quotient modules and modules, as described in the next
section. Shifts have been disabled in CoCoA 4.2.
|
Use S ::= Q[x,y];
M := Module([x,y^2,2+x^2y],[x,0,y]); -- define the submodule of S^3
-- generated by (x,y^2,2+x^2y) and (x,0,y)
GBasis(M);
[Vector(x, 0, y), Vector(x, y^2, x^2y + 2)]
-------------------------------
Describe M;
Record[Type = MODULE, Value = Record[Gens = [[x, y^2, x^2y + 2], [x,
0, y]], MRC = 1, GBasis = [[x, 0, y], [x, y^2, x^2y + 2]]]]
-------------------------------
M.GBasis;
[Vector(x, 0, y), Vector(x, y^2, x^2y + 2)]
-------------------------------
M.Gens[1];
Vector(x, y^2, x^2y + 2)
-------------------------------
M.NumComps; -- M is a submodule of a free module of rank 3
3
-------------------------------
|