This function is the workhorse of all/most of the Rees algebra functions. Most users will prefer to use one of the front end commands
reesAlgebra.
i1 : R = QQ[a..e]
o1 = R
o1 : PolynomialRing
|
i2 : J = monomialCurveIdeal(R, {1,2,3,4})
2 2 2
o2 = ideal (d - c*e, c*d - b*e, b*d - a*e, c - a*e, b*c - a*d, b - a*c)
o2 : Ideal of R
|
i3 : symmetricKernel -- (gens J)
o3 = symmetricKernel
o3 : MethodFunctionWithOptions
|
Let the ideal returned be
I and the ring it lives in (also printed)
S, then
S/I is isomorphic to the Rees algebra
R[Jt]We can get the same information using
reesAlgebra(J), see
reesAlgebra. Also note that
S is multigraded allowing Macaulay2 to correctly see that the variables of R now live in degree 0 and the new variables needed to describe
R[Jt]as a k-algebra are in degree 1.
symmetricKernel can also be computed over a quotient ring by either initially defining the ring R as a quotient ring, or by giving the quotient ideal as an optional argument.
i4 : R = QQ[x,y,z]/ideal(x*y^2-z^9)
o4 = R
o4 : QuotientRing
|
i5 : J = ideal(x,y,z)
o5 = ideal (x, y, z)
o5 : Ideal of R
|
i6 : symmetricKernel -- (gens J)
o6 = symmetricKernel
o6 : MethodFunctionWithOptions
|
or
i7 : R = QQ[x,y,z]
o7 = R
o7 : PolynomialRing
|
i8 : I = ideal(x*y^2-z^9)
9 2
o8 = ideal(- z + x*y )
o8 : Ideal of R
|
i9 : J = ideal(x,y,z)
o9 = ideal (x, y, z)
o9 : Ideal of R
|
i10 : symmetricKernel -- (gens J)
o10 = symmetricKernel
o10 : MethodFunctionWithOptions
|
These many ways of working with the function allows the system to compute both the classic Rees algebra of an ideal over a ring (polynomial or quotient) and to compute the the Rees algebra of a module or ideal using a universal embedding as described in the paper of Eisenbud, Huneke and Ulrich. It also allows different ways of setting up the quotient ring.