Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 4518

Macaulay2-1.3.1-8.fc15.i686.rpm

<?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>ideal quotients and saturation</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_radical_spof_span_spideal.html">next</a> | <a href="_intersection_spof_spideals.html">previous</a> | <a href="_radical_spof_span_spideal.html">forward</a> | <a href="_intersection_spof_spideals.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="_ideal_spquotients_spand_spsaturation.html" title="">ideal quotients and saturation</a></div>
<hr/>
<div><h1>ideal quotients and saturation</h1>
<div><h2>colon and quotient</h2>
The <a href="_quotient.html" title="quotient or division">quotient</a> of two ideals <tt>I</tt> and <tt>J</tt> is the same as <tt>I:J</tt> and is the ideal of elements <tt>f</tt> such that <tt>f*J</tt> is contained in <tt>I</tt>.<table class="examples"><tr><td><pre>i1 : R = QQ[a..d];</pre>
</td></tr>
<tr><td><pre>i2 : I = ideal (a^2*b-c^2, a*b^2-d^3, c^5-d);

o2 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i3 : J = ideal (a^2,b^2,c^2,d^2);

o3 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i4 : I:J

               2    3   2     2   5
o4 = ideal (a*b  - d , a b - c , c  - d)

o4 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i5 : P = quotient(I,J)

               2    3   2     2   5
o5 = ideal (a*b  - d , a b - c , c  - d)

o5 : Ideal of R</pre>
</td></tr>
</table>
The functions <a href="__co.html" title="a binary operator, uses include repetition; ideal quotients">:</a> and <a href="_quotient.html" title="quotient or division">quotient</a> perform the same basic operation, however <tt>quotient</tt> takes two options.  The first is <tt>MinimalGenerators</tt> which has default value <tt>true</tt> meaning the computation is done computing a minimal generating set.  You may want to see all of the generators found, setting <tt>MinimalGenerators</tt> to <tt>false</tt> accomplishes this.<table class="examples"><tr><td><pre>i6 : Q = quotient(I,J,MinimalGenerators => false)

                 2    3     2     2     5       4   3         4     3  
o6 = ideal (- a*b  + d , - a b + c , - c  + d, a c*d  - a*d, a b*c*d  -
     ------------------------------------------------------------------------
             4 2   2      2   4   3 2        2   6     2    4 3 2    3   
     a*b*d, a b c*d  - a*b , a b*c d  - a*b*c , a b*c*d  - a c d  - a b +
     ------------------------------------------------------------------------
        2
     a*c )

o6 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i7 : Q == P

o7 = true</pre>
</td></tr>
</table>
The second option is <tt>Strategy</tt>.  The default is to use <tt>Iterate</tt> which computes successive ideal quotients.  Currently (16 May 2001) the other possible options do not work.<h2>saturation</h2>
The saturation of an ideal <tt>I</tt> with respect to another ideal <tt>J</tt> is the ideal <tt>(I : J^*)</tt> defined to be the set of elements <tt>f</tt> in the ring such that J^N*f is contained in I for some N large enough.  Use the function <a href="_saturate.html" title="saturation of ideal or submodule">saturate</a> to compute this ideal.  If the ideal <tt>J</tt> is not given, the ideal <tt>J</tt> is taken to be the ideal generated by the variables of the ring <tt>R</tt> of <tt>I</tt>.<p/>
For example, one way to homogenize an ideal is to homogenize the generators and then saturate with respect to the homogenizing variable.<table class="examples"><tr><td><pre>i8 : R = ZZ/32003[a..d];</pre>
</td></tr>
<tr><td><pre>i9 : I = ideal(a^3-b, a^4-c)

             3       4
o9 = ideal (a  - b, a  - c)

o9 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i10 : Ih = homogenize(I,d)

              3      2   4      3
o10 = ideal (a  - b*d , a  - c*d )

o10 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i11 : saturate(Ih,d)

                         2     2    3      2   3      2
o11 = ideal (a*b - c*d, a c - b d, b  - a*c , a  - b*d )

o11 : Ideal of R</pre>
</td></tr>
</table>
The function <tt>saturate</tt> has three optional arguments.  First a strategy for computation can be chosen.  The options are , <a href="___Linear.html" title="a Strategy option value for saturate">Linear</a>, <a href="___Iterate.html" title="a Strategy option value for saturate">Iterate</a>, <a href="___Bayer.html" title="a Strategy option value for saturate">Bayer</a>, and <a href="___Eliminate.html" title="elimination order">Eliminate</a>.  We leave descriptions of the options to their links, but give an example of the syntax for optional arguments.<table class="examples"><tr><td><pre>i12 : saturate(Ih,d,Strategy => Bayer)

                         2     2    3      2   3      2
o12 = ideal (a*b - c*d, a c - b d, b  - a*c , a  - b*d )

o12 : Ideal of R</pre>
</td></tr>
</table>
The second option is <tt>DegreeLimit => n</tt> which specifies that the computation should halt after dealing with degree n.  The third option is <tt>MinimalGenerators => true</tt> which specifies that the computation should not only compute the saturation, but a minimal generating set for that ideal.</div>
</div>
</body>
</html>