Sophie

Sophie

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

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>Elementary uses of Groebner bases I. Math 634 Fall 2005</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_modules_spin_sp__Macaulay2.html">next</a> | <a href="_basic_spcommutative_spalgebra.html">previous</a> | <a href="_modules_spin_sp__Macaulay2.html">forward</a> | backward | <a href="_basic_spcommutative_spalgebra.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="_basic_spcommutative_spalgebra.html" title="">basic commutative algebra</a> > <a href="___Elementary_spuses_spof_sp__Groebner_spbases_sp__I._sp__Math_sp634_sp__Fall_sp2005.html" title="">Elementary uses of Groebner bases I. Math 634 Fall 2005</a></div>
<hr/>
<div><h1>Elementary uses of Groebner bases I. Math 634 Fall 2005</h1>
<div>-*- coding: utf-8 -*- In this tutorial we introduce a number of basic operations using Gröbner bases, and at the same time become familiar with a range of useful Macaulay2 constructs.<h4>A. A first Gröbner basis </h4>
To compute the Gröbner basis of an ideal <i>(x<sup>2</sup>y,xy<sup>2</sup>+x<sup>3</sup>)</i> in the polynomial ring in four variables we proceed as follows:<p/>
Our favorite field<table class="examples"><tr><td><pre>i1 : KK = ZZ/32003

o1 = KK

o1 : QuotientRing</pre>
</td></tr>
</table>
The polynomial ring<table class="examples"><tr><td><pre>i2 : R = KK[x,y,z,w]

o2 = R

o2 : PolynomialRing</pre>
</td></tr>
</table>
and the ideal<table class="examples"><tr><td><pre>i3 : I = ideal(x^2*y,x*y^2+x^3)

             2    3      2
o3 = ideal (x y, x  + x*y )

o3 : Ideal of R</pre>
</td></tr>
</table>
now the punch line:<table class="examples"><tr><td><pre>i4 : J = gens gb I

o4 = | x2y x3+xy2 xy3 |

             1       3
o4 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
This is the Gröbner basis of <i>I</i> under the graded reverse lexicographic order.  In Macaulay2, monomial orders are associated with a polynomial ring.  For example, the lexicographic order is specified using:<table class="examples"><tr><td><pre>i5 : R = KK[x,y,z,w,MonomialOrder=>Lex]

o5 = R

o5 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i6 : I = substitute(I,R)

             2    3      2
o6 = ideal (x y, x  + x*y )

o6 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i7 : gens gb I

o7 = | xy3 x2y x3+xy2 |

             1       3
o7 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
The Gröbner basis is the same, since this is a small example.  The polynomials are sorted in ascending monomial order by their lead terms, but otherwise the two Gröbner bases are the same here.<h4>B. Random regular sequences</h4>
An interesting and illustrative open problem is to understand the initial ideal (and the Gröbner basis) of a &ldquo;generic&rdquo; regular sequence.  To study a very simple case we take a matrix of 2 random forms in a polynomial ring in 3 variables:<table class="examples"><tr><td><pre>i8 : R = KK[x,y,z]

o8 = R

o8 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i9 : F = random(R^1, R^{-2,-3})

o9 = | 4784x2+7336xy+5204y2-13630xz-5803yz+178z2
     ------------------------------------------------------------------------
     4812x3-5078x2y+1744xy2-8124y3+711x2z+12462xyz-1117y2z+7264xz2-3703yz2+
     ------------------------------------------------------------------------
     13609z3 |

             1       2
o9 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
makes <i>F</i> into a <i>1 &times;2</i> matrix whose elements have degrees <i>2,3</i> (that is, <i>F</i> is a random map to the free module <i>R<sup>1</sup></i>, which has its one generator in the (default) degree, <i>0</i>, from the free module with generators in the listed degrees, <i>{2,3}</i>).  We now can compute<table class="examples"><tr><td><pre>i10 : GB = gens gb F

o10 = | x2+15896xy-12281y2-12887xz+6481yz+281z2
      -----------------------------------------------------------------------
      xy2+2071y3-14824xyz-3889y2z-11159xz2+11464yz2-12986z3
      -----------------------------------------------------------------------
      y4+1199y3z-14666xyz2+15864y2z2-12070xz3-8899yz3-13623z4 |

              1       3
o10 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i11 : LT = leadTerm GB

o11 = | x2 xy2 y4 |

              1       3
o11 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i12 : betti LT

             0 1
o12 = total: 1 3
          0: 1 .
          1: . 1
          2: . 1
          3: . 1

o12 : BettiTally</pre>
</td></tr>
</table>
betti is a routine that displays degrees of generators and also in free resolutions (which we will learn about later).  In this case, the output shows that there are Gröbner basis elements of degrees 2,3, and 4.  This result is dependent on the monomial order in the ring <i>R</i>; for example we could take the lexicographic order<table class="examples"><tr><td><pre>i13 : R = KK[x,y,z, MonomialOrder => Lex]

o13 = R

o13 : PolynomialRing</pre>
</td></tr>
</table>
(see <tt>help MonomialOrder</tt> for other possibilities).  We get <table class="examples"><tr><td><pre>i14 : F = random(R^1, R^{-2,-3})

o14 = | -9607x2-2779xy-6990xz-13967y2-8493yz+4601z2
      -----------------------------------------------------------------------
      -3927x3+8362x2y+2217x2z+1456xy2+5336xyz-2384xz2-15285y3-15520y2z+
      -----------------------------------------------------------------------
      7367yz2+14266z3 |

              1       2
o14 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i15 : GB = gens gb F

o15 = | y6-10565y5z-2181y4z2+15036y3z3-8915y2z4-125yz5-13748z6
      -----------------------------------------------------------------------
      xz4-5444y5+10927y4z-635y3z2+5108y2z3-922yz4-13864z5
      -----------------------------------------------------------------------
      xyz2-2574xz3+3653y4-245y3z-12393y2z2+14708yz3+13496z4
      -----------------------------------------------------------------------
      xy2+15472xyz-1817xz2-9110y3-2993y2z-13510yz2+9710z3
      -----------------------------------------------------------------------
      x2+11473xy-13544xz-4006y2+13459yz+13411z2 |

              1       5
o15 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i16 : LT = leadTerm GB

o16 = | y6 xz4 xyz2 xy2 x2 |

              1       5
o16 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i17 : betti LT

             0 1
o17 = total: 1 5
          0: 1 .
          1: . 1
          2: . 1
          3: . 1
          4: . 1
          5: . 1

o17 : BettiTally</pre>
</td></tr>
</table>
and there are Gröbner basis elements of degrees <i>2,3,4,5,6.</i><h4>C. Division With Remainder</h4>
A major application of Gröbner bases is to decide whether an element is in a given ideal, and whether two elements reduce to the same thing modulo an ideal.  For example, everyone knows that the trace of a nilpotent matrix is 0. We can produce an ideal <i>I</i> that defines the variety <i>X</i> of nilpotent <i>3 &times;3</i> matrices by taking the cube of a generic matrix and setting the entries equal to zero.  Here&rsquo;s how:<table class="examples"><tr><td><pre>i18 : R = KK[a..i]

o18 = R

o18 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i19 : M = genericMatrix(R,a,3,3)

o19 = | a d g |
      | b e h |
      | c f i |

              3       3
o19 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i20 : N = M^3

o20 = | a3+2abd+bde+2acg+bfg+cdh+cgi       
      | a2b+b2d+abe+be2+bcg+ach+ceh+bfh+chi
      | a2c+bcd+abf+bef+c2g+cfh+aci+bfi+ci2
      -----------------------------------------------------------------------
      a2d+bd2+ade+de2+cdg+afg+efg+dfh+fgi a2g+bdg+cg2+adh+deh+fgh+agi+dhi+gi2
      abd+2bde+e3+bfg+cdh+2efh+fhi        abg+beg+bdh+e2h+cgh+fh2+bgi+ehi+hi2
      acd+cde+bdf+e2f+cfg+f2h+cdi+efi+fi2 acg+bfg+cdh+efh+2cgi+2fhi+i3       
      -----------------------------------------------------------------------
      |
      |
      |

              3       3
o20 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i21 : I = flatten N

o21 = | a3+2abd+bde+2acg+bfg+cdh+cgi a2b+b2d+abe+be2+bcg+ach+ceh+bfh+chi
      -----------------------------------------------------------------------
      a2c+bcd+abf+bef+c2g+cfh+aci+bfi+ci2 a2d+bd2+ade+de2+cdg+afg+efg+dfh+fgi
      -----------------------------------------------------------------------
      abd+2bde+e3+bfg+cdh+2efh+fhi acd+cde+bdf+e2f+cfg+f2h+cdi+efi+fi2
      -----------------------------------------------------------------------
      a2g+bdg+cg2+adh+deh+fgh+agi+dhi+gi2 abg+beg+bdh+e2h+cgh+fh2+bgi+ehi+hi2
      -----------------------------------------------------------------------
      acg+bfg+cdh+efh+2cgi+2fhi+i3 |

              1       9
o21 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
(actually this produces a 1 x 9 matrix of of forms, not the ideal: <tt>J = ideal I</tt>; the matrix will be more useful to us).  But the trace is not in <i>I</i>!  This is obvious from the fact that the trace has degree <i>1</i>, but the polynomials in <i>I</i> are of degree <i>3</i>.  We could also check by division with remainder:<table class="examples"><tr><td><pre>i22 : Tr = trace M 

o22 = a + e + i

o22 : R</pre>
</td></tr>
<tr><td><pre>i23 : Tr //I  -- the quotient, which is 0

o23 = 0

              9       1
o23 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i24 : Tr % I  -- the remainder, which is Tr again

o24 = a + e + i

o24 : R</pre>
</td></tr>
</table>
(Here <tt>Tr</tt> is an element of <i>R</i>, not a matrix.  We could do the same thing with a <i>1 &times;1</i> matrix with <tt>Tr</tt> as its element.) This is of course because the entries of <i>I</i> do NOT generate the ideal of all forms vanishing on <i>X</i> -- this we may find with <tt>J = radical ideal I</tt>, (but this takes a while: see the documentation for <tt>radical</tt> on a faster way to find this) which shows that the radical is generated by the trace, the determinant, and the sum of the principal <i>2 &times;2</i> minors, that is, by the coefficients of the characteristic polynomial.  In particular, we can try the powers of the radical:<table class="examples"><tr><td><pre>i25 : Tr^2 % I

       2           2                  2
o25 = a  + 2a*e + e  + 2a*i + 2e*i + i

o25 : R</pre>
</td></tr>
<tr><td><pre>i26 : Tr^3 % I

        2                 2     3                                2          
o26 = 3a e + 3b*d*e + 3a*e  + 3e  + 3b*f*g + 3c*d*h + 6e*f*h + 3a i + 6a*e*i
      -----------------------------------------------------------------------
          2                          2       2     3
      + 3e i + 3c*g*i + 6f*h*i + 3a*i  + 3e*i  + 3i

o26 : R</pre>
</td></tr>
<tr><td><pre>i27 : Tr^4 % I

        2 2         2       3     4                                   
o27 = 6a e  + 6b*d*e  + 6a*e  + 6e  + 6b*e*f*g + 6c*d*e*h - 6b*d*f*h +
      -----------------------------------------------------------------------
                    2                   2 2      2                       2   
      6a*e*f*h + 12e f*h - 6c*f*g*h - 6f h  + 12a e*i + 12b*d*e*i + 12a*e i +
      -----------------------------------------------------------------------
         3                                                               2 2
      12e i + 12c*e*g*i + 6b*f*g*i + 6c*d*h*i + 6a*f*h*i + 36e*f*h*i + 6a i 
      -----------------------------------------------------------------------
               2     2 2         2          2       3        3     4
      + 12a*e*i  + 6e i  + 6c*g*i  + 12f*h*i  + 6a*i  + 12e*i  + 6i

o27 : R</pre>
</td></tr>
<tr><td><pre>i28 : Tr^5 % I

         2 2           2         3       4         2         2       
o28 = 30a e i + 30b*d*e i + 30a*e i + 30e i + 30c*e g*i + 30a f*h*i +
      -----------------------------------------------------------------------
                                     2                         2 2   
      30b*d*f*h*i + 60a*e*f*h*i + 90e f*h*i + 30c*f*g*h*i + 30f h i +
      -----------------------------------------------------------------------
         2   2            2        2 2      3 2            2            2  
      30a e*i  + 30b*d*e*i  + 30a*e i  + 30e i  + 30c*e*g*i  + 60a*f*h*i  +
      -----------------------------------------------------------------------
                2      2 3          3          3      2 3          3  
      120e*f*h*i  + 30a i  + 30b*d*i  + 30a*e*i  + 30e i  + 30c*g*i  +
      -----------------------------------------------------------------------
             3        4        4      5
      90f*h*i  + 30a*i  + 30e*i  + 30i

o28 : R</pre>
</td></tr>
<tr><td><pre>i29 : Tr^6 % I

         2 2 2          2 2        3 2      4 2        2   2      2     2  
o29 = 90a e i  + 90b*d*e i  + 90a*e i  + 90e i  + 90c*e g*i  + 90a f*h*i  +
      -----------------------------------------------------------------------
                 2               2       2     2              2      2 2 2  
      90b*d*f*h*i  + 180a*e*f*h*i  + 270e f*h*i  + 90c*f*g*h*i  + 90f h i  +
      -----------------------------------------------------------------------
         2   3            3        2 3      3 3            3             3  
      90a e*i  + 90b*d*e*i  + 90a*e i  + 90e i  + 90c*e*g*i  + 180a*f*h*i  +
      -----------------------------------------------------------------------
                3      2 4          4          4      2 4          4  
      360e*f*h*i  + 90a i  + 90b*d*i  + 90a*e*i  + 90e i  + 90c*g*i  +
      -----------------------------------------------------------------------
              4        5        5      6
      270f*h*i  + 90a*i  + 90e*i  + 90i

o29 : R</pre>
</td></tr>
<tr><td><pre>i30 : Tr^7 % I

o30 = 0

o30 : R</pre>
</td></tr>
</table>
The seventh power is the first one in the ideal!  (Bernard Mourrain has worked out a formula for which power in general.) In this case<table class="examples"><tr><td><pre>i31 : Tr^6 // I

o31 = {3} | a3+6a2e+3bde+15ae2+22e3+6efh+6a2i+30aei+60e2i+6fhi+15ai2+60ei2+22
      {3} | 0                                                                
      {3} | 0                                                                
      {3} | -27abe-45be2+9ceh+30bfh-72abi-144bei+75chi                       
      {3} | -2a3+15a2e+21bde+6ae2+e3+33bfg+9cdh-36afh+51efh+60a2i+72bdi+30aei
      {3} | 18abg+45beg+3a2h+9bdh-21aeh+3e2h+9cgh+36fh2+114bgi-135ahi-39ehi+3
      {3} | 18ace+6abf-36bef-18cfh+66aci+36cei-57bfi+132ci2                  
      {3} | -3a2f-39bdf+75aef-12e2f+9cfg-36f2h-66cdi+135afi+51efi+69fi2      
      {3} | -2a3-18abd-30a2e-60bde-30ae2-44e3-18ceg-33bfg-9cdh+18afh-93efh-75
      -----------------------------------------------------------------------
      i3                                                  |
                                                          |
                                                          |
                                                          |
      +6e2i+66cgi+147fhi-30ai2-75ei2-26i3                 |
      6hi2                                                |
                                                          |
                                                          |
      a2i-90bdi-60aei-75e2i-66cgi-171fhi-84ai2-84ei2-89i3 |

              9       1
o31 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
is not 0.  It is a matrix that makes the following true:<table class="examples"><tr><td><pre>i32 : Tr^6 == I * (Tr^6 // I) + (Tr^6 % I)

o32 = true</pre>
</td></tr>
</table>
<h4>D. Elimination Theory</h4>
Computing the elimination ideal <i>I &cap;k[xi, ..., xn]</i> is one of the most important applications of Gröbner bases.<table class="examples"><tr><td><pre>i33 : R = KK[t,y,z,MonomialOrder=>Lex]

o33 = R

o33 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i34 : I = ideal(y-(t^2+t+1), z-(t^3+1))

                2                 3
o34 = ideal (- t  - t + y - 1, - t  + z - 1)

o34 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i35 : GB = gens gb I

o35 = | y3-3y2-3yz+6y-z2+4z-4 tz-2t-y2+3y+2z-4 ty-y-z+2 t2+t-y+1 |

              1       4
o35 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i36 : F = GB_(0,0)

       3     2                2
o36 = y  - 3y  - 3y*z + 6y - z  + 4z - 4

o36 : R</pre>
</td></tr>
<tr><td><pre>i37 : substitute(F, {y =>t^2+t+1, z=>t^3+1})

o37 = 0

o37 : R</pre>
</td></tr>
</table>
F is the polynomial that gives an algebraic relation between <i>t<sup>2</sup>+t+1</i> and <i>t<sup>3</sup>+1</i>.  Another way to accomplish this in Macaulay2 is to use the <tt>eliminate</tt> function.  In this case, the monomial order of the ring is not important.<table class="examples"><tr><td><pre>i38 : R = KK[y,z,t]

o38 = R

o38 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i39 : I = substitute(I,R)

                2                 3
o39 = ideal (- t  + y - t - 1, - t  + z - 1)

o39 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i40 : eliminate(I,t)

             3     2           2
o40 = ideal(y  - 3y  - 3y*z - z  + 6y + 4z - 4)

o40 : Ideal of R</pre>
</td></tr>
</table>
Yet another method is to use ring maps.<table class="examples"><tr><td><pre>i41 : A = KK[t]

o41 = A

o41 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i42 : B = KK[y,z]

o42 = B

o42 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i43 : G = map(A,B,{t^2+t+1, t^3+1})

                2           3
o43 = map(A,B,{t  + t + 1, t  + 1})

o43 : RingMap A &lt;--- B</pre>
</td></tr>
<tr><td><pre>i44 : kernel G

             3     2           2
o44 = ideal(y  - 3y  - 3y*z - z  + 6y + 4z - 4)

o44 : Ideal of B</pre>
</td></tr>
</table>
<h4>E. Intersections and ideal quotients </h4>
An interesting problem is to investigate ideals of the form <i>I = (x<sup>d</sup>, y<sup>d</sup>, z<sup>d</sup>, f)</i>, where <i>f</i> is a polynomial, in three variables <i>x,y,z</i>.  First, let&rsquo;s compute the ideal quotient for an example, by using the method given in class.  <table class="examples"><tr><td><pre>i45 : R = KK[t,x,y,z]

o45 = R

o45 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i46 : I = ideal(x^3,y^3,z^3)

              3   3   3
o46 = ideal (x , y , z )

o46 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i47 : F = x+y+z

o47 = x + y + z

o47 : R</pre>
</td></tr>
<tr><td><pre>i48 : L = t*I + (1-t)*ideal(F)

                3     3     3
o48 = ideal (t*x , t*y , t*z , - t*x - t*y - t*z + x + y + z)

o48 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i49 : L1 = eliminate(L,t)

                3      3    4     3    4    3    3     4    3      3        3
o49 = ideal (x*z  + y*z  + z , x*y  + y  + y z, x y + y  - x z + 2y z - 2y*z 
      -----------------------------------------------------------------------
         4   4    4     3      3        3    4   3 2    3 2     2 3       4  
      - z , x  - y  + 2x z - 2y z + 2y*z  + z , x z  + y z  + 3y z  + 3y*z  +
      -----------------------------------------------------------------------
       5
      z )

o49 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i50 : gens gb L1

o50 = | xz3+yz3+z4 xy3+y4+y3z x3y+y4-x3z+2y3z-2yz3-z4 x4-y4+2x3z-2y3z+2yz3+z4
      -----------------------------------------------------------------------
      x3z2+y3z2+3y2z3+3yz4+z5 |

              1       5
o50 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
Each of these is divisible by F:<table class="examples"><tr><td><pre>i51 : (gens L1) % F

o51 = 0

              1       5
o51 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
Divide by F.<table class="examples"><tr><td><pre>i52 : J = ideal ((gens L1)//F)

              3   3   2       2    3    2     2       2      2    3   3    2 
o52 = ideal (z , y , x y - x*y  + y  - x z + y z + x*z  - y*z  - z , x  - x y
      -----------------------------------------------------------------------
           2    3    2     2       2      2    3   2 2        2    2 2      3
      + x*y  - y  + x z - y z - x*z  + y*z  + z , x z  - x*y*z  + y z  - x*z 
      -----------------------------------------------------------------------
            3    4
      + 2y*z  + z )

o52 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i53 : mingens J

o53 = | z3 y3 x2y-xy2-x2z+y2z+xz2-yz2 x3 x2z2-xyz2+y2z2 |

              1       5
o53 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i54 : betti oo

             0 1
o54 = total: 1 5
          0: 1 .
          1: . .
          2: . 4
          3: . 1

o54 : BettiTally</pre>
</td></tr>
</table>
J is defined by 5 equations: the original 3, another cubic and also a quartic. (oo is the previous output).  Now, let&rsquo;s do this the easier way.<table class="examples"><tr><td><pre>i55 : R = KK[x,y,z]

o55 = R

o55 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i56 : I = ideal(x^3,y^3,z^3)

              3   3   3
o56 = ideal (x , y , z )

o56 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i57 : F = x+y+z

o57 = x + y + z

o57 : R</pre>
</td></tr>
<tr><td><pre>i58 : J = I : F

              3   3   2       2    2     2       2      2   3   2 2        2
o58 = ideal (z , y , x y - x*y  - x z + y z + x*z  - y*z , x , x z  - x*y*z 
      -----------------------------------------------------------------------
         2 2
      + y z )

o58 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i59 : betti J

             0 1
o59 = total: 1 5
          0: 1 .
          1: . .
          2: . 4
          3: . 1

o59 : BettiTally</pre>
</td></tr>
<tr><td><pre>i60 : transpose gens J

o60 = {-3} | z3                      |
      {-3} | y3                      |
      {-3} | x2y-xy2-x2z+y2z+xz2-yz2 |
      {-3} | x3                      |
      {-4} | x2z2-xyz2+y2z2          |

              5       1
o60 : Matrix R  &lt;--- R</pre>
</td></tr>
<tr><td><pre>i61 : transpose gens gb J

o61 = {-3} | z3                      |
      {-3} | y3                      |
      {-3} | x2y-xy2-x2z+y2z+xz2-yz2 |
      {-3} | x3                      |
      {-4} | x2z2-xyz2+y2z2          |

              5       1
o61 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
Problem: how many generators can you obtain using this construction, where you may try different positive integers <i>d</i>, and polynomials <i>f</i>?<h4>F. Saturation</h4>
A very useful construction is the saturation of an ideal <i>I</i> with respect to a polynomial <i>f</i>, or another ideal <i>J</i>.<table class="examples"><tr><td><pre>i62 : R = KK[t,a..f]

o62 = R

o62 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i63 : I = ideal(a*b*c-d*e*f, a^2*b-c^2*d, a*f^2-d*b*c)

                             2     2                2
o63 = ideal (a*b*c - d*e*f, a b - c d, - b*c*d + a*f )

o63 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i64 : F = a*b*c*d*e*f

o64 = a*b*c*d*e*f

o64 : R</pre>
</td></tr>
<tr><td><pre>i65 : J = eliminate(I + ideal(t*F-1), t)

              2     2            2              2   3                        
o65 = ideal (d e - a f, b*d*e - c f, b*c*d - a*f , c  - a*e*f, a*b*c - d*e*f,
      -----------------------------------------------------------------------
         2      2   2     2    3     4   2 2      3
      a*b  - c*f , a b - c d, b d - f , b c  - e*f )

o65 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i66 : transpose gens J

o66 = {-3} | d2e-a2f  |
      {-3} | bde-c2f  |
      {-3} | bcd-af2  |
      {-3} | c3-aef   |
      {-3} | abc-def  |
      {-3} | ab2-cf2  |
      {-3} | a2b-c2d  |
      {-4} | b3d-f4   |
      {-4} | b2c2-ef3 |

              9       1
o66 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
There is a builtin routine in Macaulay2 for computing saturations:<table class="examples"><tr><td><pre>i67 : R = KK[a..f]

o67 = R

o67 : PolynomialRing</pre>
</td></tr>
<tr><td><pre>i68 : I = substitute(I,R)

                             2     2                2
o68 = ideal (a*b*c - d*e*f, a b - c d, - b*c*d + a*f )

o68 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i69 : F = product gens R

o69 = a*b*c*d*e*f

o69 : R</pre>
</td></tr>
<tr><td><pre>i70 : J' = saturate(I,F)

              2     2            2              2   3                        
o70 = ideal (d e - a f, b*d*e - c f, b*c*d - a*f , c  - a*e*f, a*b*c - d*e*f,
      -----------------------------------------------------------------------
         2      2   2     2    3     4   2 2      3
      a*b  - c*f , a b - c d, b d - f , b c  - e*f )

o70 : Ideal of R</pre>
</td></tr>
<tr><td><pre>i71 : transpose gens J'

o71 = {-3} | d2e-a2f  |
      {-3} | bde-c2f  |
      {-3} | bcd-af2  |
      {-3} | c3-aef   |
      {-3} | abc-def  |
      {-3} | ab2-cf2  |
      {-3} | a2b-c2d  |
      {-4} | b3d-f4   |
      {-4} | b2c2-ef3 |

              9       1
o71 : Matrix R  &lt;--- R</pre>
</td></tr>
</table>
</div>
</div>
</body>
</html>