|
2.3.5 Modules and their annihilatorNow we shall give three more advanced examples. SINGULAR is able to handle modules over all the rings,
which can be defined as a basering. A free module of rank ring rr; int n = 4; freemodule(4); → _[1]=gen(1) → _[2]=gen(2) → _[3]=gen(3) → _[4]=gen(4) typeof(_); → module print(freemodule(4)); → 1,0,0,0, → 0,1,0,0, → 0,0,1,0, → 0,0,0,1 To define a module, we give a list of vectors generating a submodule of a free module. Then this set of vectors may be identified with the columns of a matrix. For that reason in SINGULAR matrices and modules may be interchanged. However, the representation is different (modules may be considered as sparse represented matrices). ring r =0,(x,y,z),dp; module MD = [x,0,x],[y,z,-y],[0,z,-2y]; matrix MM = MD; print(MM); → x,y,0, → 0,z,z, → x,-y,-2y However the submodule
In order to get the module of relations of
syz(MD); → _[1]=x*gen(3)-x*gen(2)+y*gen(1) We want to calculate, as an application, the annihilator of a given module.
Let
module U = [z3,xy2,x3],[yz2,1,xy5z+z3],[y2z,0,x3],[xyz+x2,y2,0],[xyz,x2y,1]; Then, by definition, the annihilator of M is the ideal
quotient(U,freemodule(nrows(U))); The result is too big to be shown here. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |