<?xml version="1.0" encoding="utf-8" ?> <!-- for emacs: -*- coding: utf-8 -*- --> <!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head><title>ideals to and from modules</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="_sums_cm_spproducts_cm_spand_sppowers_spof_spideals.html">next</a> | <a href="_ideals_spto_spand_spfrom_spmatrices.html">previous</a> | <a href="_sums_cm_spproducts_cm_spand_sppowers_spof_spideals.html">forward</a> | <a href="_ideals_spto_spand_spfrom_spmatrices.html">backward</a> | <a href="_ideals.html">up</a> | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div> </td> </tr> </table> <div><a href="index.html" title="">Macaulay2Doc</a> > <a href="_ideals.html" title="">ideals</a> > <a href="_ideals_spto_spand_spfrom_spmodules.html" title="">ideals to and from modules</a></div> <hr/> <div><h1>ideals to and from modules</h1> <div><h2>from ideals to modules</h2> An ideal <tt>I</tt> is also an <tt>R</tt>-submodule. In Macaulay2 we distinguish between when we are thinking of <tt>I</tt> as as ideal or a module. If it is first defined as an ideal, it is easily turned into a module using the function <a href="_module.html" title="make or get a module">module</a> and for any submodule of the rank one free module <tt>R</tt> we can obtain an ideal of the generators using the function <a href="_ideal.html" title="make an ideal">ideal</a>.<table class="examples"><tr><td><pre>i1 : R = ZZ/32003[x,y,z];</pre> </td></tr> <tr><td><pre>i2 : I = ideal(x^2,y*z-x); o2 : Ideal of R</pre> </td></tr> <tr><td><pre>i3 : module I o3 = image | x2 yz-x | 1 o3 : R-module, submodule of R</pre> </td></tr> </table> <h2>from modules to ideals</h2> For any submodule of the rank one free module <tt>R</tt> we can obtain an ideal of the generators using the function <tt>ideal</tt>.<table class="examples"><tr><td><pre>i4 : A = matrix{{x*y-z,z^3}}; 1 2 o4 : Matrix R <--- R</pre> </td></tr> <tr><td><pre>i5 : M = image A o5 = image | xy-z z3 | 1 o5 : R-module, submodule of R</pre> </td></tr> <tr><td><pre>i6 : ideal M 3 o6 = ideal (x*y - z, z ) o6 : Ideal of R</pre> </td></tr> </table> <h2>getting the quotient module corresponding to an ideal</h2> We also often work with <tt>R/I</tt> as an <tt>R</tt>-module. Simply typing <tt>R/I</tt> at a prompt in Macaulay2 constructs the quotient ring (see <a href="_quotient_springs.html" title="">quotient rings</a>). There are two ways to tell Macaulay2 that we want to work with this as a module.<table class="examples"><tr><td><pre>i7 : coker generators I o7 = cokernel | x2 yz-x | 1 o7 : R-module, quotient of R</pre> </td></tr> <tr><td><pre>i8 : R^1/I o8 = cokernel | x2 yz-x | 1 o8 : R-module, quotient of R</pre> </td></tr> </table> <h2>modules versus ideals for computations</h2> Some functions in Macaulay2 try to make an informed decision about ideal and modules. For example, if <a href="_resolution.html" title="projective resolution">resolution</a> is given an ideal <tt>I</tt>, it will compute a resolution of the module <tt>R^1/I</tt>, as in the following example.<table class="examples"><tr><td><pre>i9 : resolution I 1 2 1 o9 = R <-- R <-- R <-- 0 0 1 2 3 o9 : ChainComplex</pre> </td></tr> </table> The functions <a href="_dim.html" title="compute the Krull dimension">dim</a> and <a href="_degree.html" title="">degree</a> also operate on <tt>R^1/I</tt> if the input is <tt>I</tt> or <tt>R^1/I</tt>. However, the function <a href="_hilbert__Polynomial.html" title="compute the Hilbert polynomial">hilbertPolynomial</a> computes the Hilbert polynomial of the module <tt>I</tt> if the input is <tt>hilbertPolynomial I</tt>.<p/> For basic information about working with modules see <a href="_modules.html" title="">modules</a>.</div> </div> </body> </html>