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.)
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.109082 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.254977 seconds
o5 : Ideal of S[w , w , w , w , w , w , w , w ]
0 1 2 3 4 5 6 7
|
i6 : numgens V1 o6 = 15 |
i7 : numgens V2 o7 = 15 |
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 |
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.078701 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 = | -33a-43b+27c 18a+50b+7c 6a-16b-50c 29a+28b-17c |
| 45a-6b-2c 29a+37b-14c -23a+50c 46a-13b-28c |
| 25a-39b+43c -34a+48b+44c 45a-2b -23a-48b+26c |
3 4
o19 : Matrix S <--- S
|
i20 : i=minors(3,m)
3 2 2 3 2 2 2
o20 = ideal (- 21a + 36a b - 39a*b - 41b - 38a c + 3a*b*c - 30b c - 39a*c
-----------------------------------------------------------------------
2 3 3 2 2 3 2 2
+ 18b*c + 44c , - 15a - 2a b - 33a*b + 7b + 11a c + 19a*b*c - 25b c
-----------------------------------------------------------------------
2 2 3 3 2 2 3 2
+ 32a*c + 5b*c - 32c , - 17a + 13a b - 41a*b - 30b + 9a c + 7a*b*c
-----------------------------------------------------------------------
2 2 3 3 2 2 3 2
+ 42a*c - 2b*c - 30c , 25a - 30a b - 33a*b + 12b - 7a c - 20a*b*c
-----------------------------------------------------------------------
2 2 2 3
+ 31b c - 42a*c - 38b*c + 10c )
o20 : Ideal of S
|
i21 : time I=reesIdeal (i,i_0);
-- used 0.009891 seconds
o21 : Ideal of S[w , w , w , w ]
0 1 2 3
|
i22 : transpose gens I
o22 = {-1, -4} | w_0c-10w_1a+12w_1b+39w_1c-48w_2a+36w_2b-22w_2c+26w_3a-18w_3b
{-1, -4} | w_0b-9w_1a-15w_1b-3w_1c+25w_2a+3w_2b-50w_2c-49w_3a-14w_3b+2w
{-1, -4} | w_0a+27w_1a+36w_1b+24w_1c+18w_2a+6w_2b-41w_2c+w_3a-6w_3b-26w
{-3, -9} | w_0^3-50w_0^2w_1-44w_0w_1^2-27w_1^3-w_0^2w_2-40w_0w_1w_2+7w_
-----------------------------------------------------------------------
+14w_3c
_3c
_3c
1^2w_2-19w_0w_2^2+37w_1w_2^2+48w_2^3+w_0^2w_3+16w_0w_1w_3-30w_1^2w_3+
-----------------------------------------------------------------------
25w_0w_2w_3+50w_1w_2w_3-24w_2^2w_3+20w_0w_3^2+22w_1w_3^2+14w_2w_3^2-18w
-----------------------------------------------------------------------
|
|
|
_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.04979 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
|
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
|
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
|