up
previous
next
Introduction to Modules
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]
or
Vector(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.
example
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
-------------------------------