
![[previous]](previous.gif)
![[up]](up.gif)
![[top]](top.gif)
ideals to and from modules
Sections:
from ideals to modules
An ideal I is also an R-submodule. In
Macaulay 2 we distinguish between when we are thinking of I as
as ideal or a module. If it is first defined as an ideal, it is easily
turned into a module using the function module and for any
submodule of the rank one free module R we can obtain an ideal
of the generators using the function ideal.
i1 : R = ZZ/32003[x,y,z]; |
i2 : I = ideal(x^2,y*z-x);
o2 : Ideal of R |
i3 : module I
o3 = image | x2 yz-x |
1
o3 : R-module, submodule of R |
from modules to ideals
For any submodule of the rank one free
module R we can obtain an ideal of the generators
using the function ideal.
i4 : A = matrix{{x*y-z,z^3}};
1 2
o4 : Matrix R <--- R |
i5 : M = image A
o5 = image | xy-z z3 |
1
o5 : R-module, submodule of R |
i6 : ideal M
3
o6 = ideal (x*y - z, z )
o6 : Ideal of R |
getting the quotient module corresponding to an ideal
We also often work with R/I as
an R-module. Simply typing R/I at a prompt
in Macaulay 2 constructs the quotient ring (see quotient rings).
There are two ways to tell Macaulay 2 that we want to work with this
as a module.
i7 : coker generators I
o7 = cokernel | x2 yz-x |
1
o7 : R-module, quotient of R |
i8 : R^1/I
o8 = cokernel | x2 yz-x |
1
o8 : R-module, quotient of R |
modules versus ideals for computations
Some functions in Macaulay 2 try to make an informed decision
about ideal and modules. For example, if resolution is
given an ideal I, it will compute a resolution of
the module R^1/I, as in the following example.
i9 : resolution I
1 2 1
o9 = R <-- R <-- R <-- 0
0 1 2 3
o9 : ChainComplex |
The functions dimension and degree also
operate on R^1/I if the input
is I or R^1/I. However, the
function hilbertPolynomial computes the Hilbert
polynomial of the module I if the input
is hilbertPolynomial I.
For basic information about working with
modules see modules I.

![[previous]](previous.gif)
![[up]](up.gif)
![[top]](top.gif)