next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
ReesAlgebra :: reesIdeal

reesIdeal -- compute the defining ideal of the Rees Algebra

Synopsis

Description

The Rees algebra of a module M over a ring R is here defined, following the paper What is the Rees algebra of a module? David Eisenbud, Craig Huneke and Bernd Ulrich, Proc. Amer. Math. Soc. 131 (2003) 701--708, as follows: If h:F→M is a surjection from a free module, and g: M→G is the universal map to a free module, then the Rees algebra of M is the image of the induced map of Sym(gh): Sym(F)→Sym(G), and thus can be computed with symmetricKernel(gh). The paper above proves that if M is isomorphic to an ideal with inclusion g: M→R (or, in characteristic zero but not in characteristic >0 if M is a submodule of a free module and g’: M→G) is any injection), then the Rees algebra is equal to the image of g’h, so it is unnecessary to compute the universal embedding.

This package gives the user a choice between two methods for finding the defining ideal of the Rees algebra of an ideal or module M over a ring R: The call

reesIdeal(M)

computes the universal embedding g: M→G and a surjection f: F→M and returns the result of symmetricKernel(gf). On the other hand, if the user knows an non-zerodivisor a∈R such that M[a-1 is a free module (this is the case, for example, if a ∈M⊂R and a is a non-zerodivisor), then it is often much faster to call

reesIdeal(M,a)

which finds a surjection f: F→M and returns (J:a) ⊂Sym(F), the saturation of the ideal J:=(ker f)Sym(F). Note that this gives the correct answer even under the slightly weaker hypothesis that M[a-1] is “of linear type”. (See also isLinearType.)

Historical Background: The Rees Algebra of an ideal is the basic commutative algebra analogue of the blow up operation in algebraic geometry. It has many applications, and a great deal of modern work in commutative algebra has been devoted to it. The term “Rees Algebra” (of an ideal I in a ring R, say) is used here to refer to the ring R[It]⊂R[t] which is sometimes called the “blowup algebra” instead. (The origin of the name may be traced to a paper by David Rees (On a problem of Zariski, Illinois J. Math. (1958) 145-149), where Rees used the ring R[It,t-1], now also called the “extended Rees Algebra.”)
i1 : kk = ZZ/101;
i2 : S=kk[x_0..x_4];
i3 : i=monomialCurveIdeal(S,{2,3,5,6})

                          2                       3      2     2      2     2
o3 = ideal (x x  - x x , x  - x x , x x  - x x , x  - x x , x x  - x x , x x 
             2 3    1 4   2    0 4   1 2    0 3   3    2 4   1 3    0 4   0 3
     ------------------------------------------------------------------------
        2     2              3    2
     - x x , x x  - x x x , x  - x x )
        1 4   1 3    0 2 4   1    0 4

o3 : Ideal of S
i4 : time V1 = reesIdeal i;
     -- used 0.0462589 seconds

o4 : Ideal of S[w , w , w , w , w , w , w , w ]
                 0   1   2   3   4   5   6   7
i5 : time V2 = reesIdeal(i,i_0);
     -- used 0.185949 seconds

o5 : Ideal of S[w , w , w , w , w , w , w , w ]
                 0   1   2   3   4   5   6   7
This example is particularly interesting upon a bit more exploration.
i6 : numgens V1

o6 = 15
i7 : numgens V2

o7 = 15
The difference is striking and, at least in part, explains the difference in computing time. Furthermore, if we compute a Grobner basis for both and compare the two matrices, we see that we indeed got the same ideal.
i8 : M1 = gens gb V1;

                                               1                                         84
o8 : Matrix (S[w , w , w , w , w , w , w , w ])  <--- (S[w , w , w , w , w , w , w , w ])
                0   1   2   3   4   5   6   7             0   1   2   3   4   5   6   7
i9 : M2 = gens gb V2;

                                               1                                         84
o9 : Matrix (S[w , w , w , w , w , w , w , w ])  <--- (S[w , w , w , w , w , w , w , w ])
                0   1   2   3   4   5   6   7             0   1   2   3   4   5   6   7
i10 : use ring M2

o10 = S[w , w , w , w , w , w , w , w ]
         0   1   2   3   4   5   6   7

o10 : PolynomialRing
i11 : M1 = substitute(M1, ring M2);

                                                1                                         84
o11 : Matrix (S[w , w , w , w , w , w , w , w ])  <--- (S[w , w , w , w , w , w , w , w ])
                 0   1   2   3   4   5   6   7             0   1   2   3   4   5   6   7
i12 : M1 == M2

o12 = true
i13 : numgens source M2

o13 = 84
Another example illustrates the power and usage of the code. We also show the output in this example. While a bit messy, the user can see how we handle the degrees in both cases.
i14 : S=kk[a,b,c]

o14 = S

o14 : PolynomialRing
i15 : m=matrix{{a,0},{b,a},{0,b}}

o15 = | a 0 |
      | b a |
      | 0 b |

              3       2
o15 : Matrix S  <--- S
i16 : i=minors(2,m)

              2        2
o16 = ideal (a , a*b, b )

o16 : Ideal of S
i17 : time reesIdeal i
     -- used 0.021127 seconds

                                        2
o17 = ideal (b*w  - a*w , b*w  - a*w , w  - w w )
                1      2     0      1   1    0 2

o17 : Ideal of S[w , w , w ]
                  0   1   2
i18 : res i

       1      3      2
o18 = S  <-- S  <-- S  <-- 0
                            
      0      1      2      3

o18 : ChainComplex
i19 : m=random(S^3,S^{4:-1})

o19 = | -16a+22b-2c  4a-17b-33c  49a+36b+42c  3a-36b-12c |
      | -16a-41b+25c 50a-31b-31c 47a+27b+4c   -50a+2c    |
      | 38a+14b-36c  3a-11b+50c  -11a-34b+30c 26a+24b-5c |

              3       4
o19 : Matrix S  <--- S
i20 : i=minors(3,m)

                3      2         2      3     2                2         2  
o20 = ideal (16a  + 28a b + 35a*b  - 27b  + 7a c + 17a*b*c + 4b c + 31a*c  -
      -----------------------------------------------------------------------
           2      3       3      2         2      3      2                2 
      25b*c  + 20c , - 34a  + 15a b - 37a*b  - 13b  + 11a c - 3a*b*c + 16b c
      -----------------------------------------------------------------------
             2        2      3       3     2         2      3      2   
      - 23a*c  - 34b*c  - 33c , - 24a  + 9a b + 14a*b  - 26b  - 19a c -
      -----------------------------------------------------------------------
                   2         2        2      3       3      2         2  
      30a*b*c - 10b c - 32a*c  + 43b*c  + 41c , - 38a  - 23a b + 46a*b  -
      -----------------------------------------------------------------------
         3      2                 2        2        2      3
      43b  - 47a c + 20a*b*c - 33b c + 2a*c  + 38b*c  - 48c )

o20 : Ideal of S
i21 : time I=reesIdeal (i,i_0);
     -- used 0.0110383 seconds

o21 : Ideal of S[w , w , w , w ]
                  0   1   2   3
i22 : transpose gens I

o22 = {-1, -4} | w_0c-26w_1a+46w_1b-49w_1c+31w_2b-23w_2c+2w_3a-35w_3b-15w_3c
      {-1, -4} | w_0b-20w_1a+50w_1b+50w_1c-3w_2a-45w_2b-31w_2c-44w_3a+42w_3b
      {-1, -4} | w_0a+10w_1a-36w_1b-14w_1c-w_2a+16w_2b+30w_2c+24w_3a+20w_3b+
      {-3, -9} | w_0^3+11w_0^2w_1+34w_0w_1^2-30w_1^3+32w_0^2w_2+30w_0w_1w_2+
      -----------------------------------------------------------------------
                                                                             
      +17w_3c                                                                
      10w_3c                                                                 
      21w_1^2w_2-9w_0w_2^2-26w_1w_2^2-32w_2^3-50w_0^2w_3-18w_0w_1w_3-43w_1^2w
      -----------------------------------------------------------------------
                                                                             
                                                                             
                                                                             
      _3-30w_0w_2w_3-43w_1w_2w_3-23w_2^2w_3-42w_0w_3^2-32w_1w_3^2+13w_2w_3^2-
      -----------------------------------------------------------------------
              |
              |
              |
      12w_3^3 |

                                4                         1
o22 : Matrix (S[w , w , w , w ])  <--- (S[w , w , w , w ])
                 0   1   2   3             0   1   2   3
i23 : i=minors(2,m);

o23 : Ideal of S
i24 : time I=reesIdeal (i,i_0);
     -- used 0.0412901 seconds

o24 : Ideal of S[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  ]
                  0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
Investigating plane curve singularities
i25 : R = ZZ/32003[x,y,z]

o25 = R

o25 : PolynomialRing
i26 : I = ideal(x,y)

o26 = ideal (x, y)

o26 : Ideal of R
i27 : cusp = ideal(x^2*z-y^3)

               3    2
o27 = ideal(- y  + x z)

o27 : Ideal of R
i28 : RI = reesIdeal(I)

o28 = ideal(y*w  - x*w )
               0      1

o28 : Ideal of R[w , w ]
                  0   1
i29 : S = ring RI

o29 = S

o29 : PolynomialRing
i30 : totalTransform = substitute(cusp, S) + RI

                3    2
o30 = ideal (- y  + x z, y*w  - x*w )
                            0      1

o30 : Ideal of S
i31 : D = decompose totalTransform -- the components are the proper transform of the cuspidal curve and the exceptional curve

                            3    2             2       2      2
o31 = {ideal (y*w  - x*w , y  - x z, x*z*w  - y w , z*w  - y*w ), ideal (y,
                 0      1                 0      1     0      1
      -----------------------------------------------------------------------
      x)}

o31 : List
i32 : totalTransform = first flattenRing totalTransform

                3    2
o32 = ideal (- y  + x z, w y - w x)
                          0     1

                 ZZ
o32 : Ideal of -----[w , w , x, y, z]
               32003  0   1
i33 : L = primaryDecomposition totalTransform

                          3    2              2   2     2            2      
o33 = {ideal (w y - w x, y  - x z, w x*z - w y , w z - w y), ideal (y , x*y,
               0     1              0       1     0     1                   
      -----------------------------------------------------------------------
       2
      x , w y - w x)}
           0     1

o33 : List
i34 : apply(L, i -> (degree i)/(degree radical i))

o34 = {1, 2}

o34 : List
The total transform of the cusp contains the exceptional with multiplicity two. The proper transform of the cusp is a smooth curve but is tangent to the exceptional curve.
i35 : use ring L_0

        ZZ
o35 = -----[w , w , x, y, z]
      32003  0   1

o35 : PolynomialRing
i36 : singular = ideal(singularLocus(L_0));

                 ZZ
o36 : Ideal of -----[w , w , x, y, z]
               32003  0   1
i37 : SL = saturate(singular, ideal(x,y,z));

                 ZZ
o37 : Ideal of -----[w , w , x, y, z]
               32003  0   1
i38 : saturate(SL, ideal(w_0,w_1)) -- we get 1 so it is smooth.

o38 = ideal 1

                 ZZ
o38 : Ideal of -----[w , w , x, y, z]
               32003  0   1

Caveat

See also

Ways to use reesIdeal :

  • reesIdeal(Ideal)
  • reesIdeal(Ideal,RingElement)
  • reesIdeal(Module)
  • reesIdeal(Module,RingElement)