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 as of 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
-------------------------------
|