# Normalization (integral closure)

I tried doing some calculations that involve integral closures, but I seem to run into problems:

Say I define a ring as a quotient ring: for example the quotient ring $\mathbb{C}[x,y]/(y^3-x^2)$. Then if I use the integral_closure option, he rejects me. As far as I can tell this is because he treats quotient rings as Commutative Rings rather than, say, integral domains, and so it doesn't have the option of integral closures.

I'm sure there's a way to do such things. What is it? Is the idea that we have to apply some functor so that that ring would be treated as an object in a different category?

edit retag close merge delete

Sort by » oldest newest most voted

I don't think there is any easy-to-use functionality in Sage for computing the integral closure of a polynomial quotient ring. What you would want would be for the following to work:

sage: R.<x,y> = QQ[]
sage: S = R.quotient(y^2 - x^3); S
Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (-x^3 + y^2)
sage: S.integral_closure()


but of course it doesn't. The actual hard work to make this possible is already in Sage, via Singular, as documented here. Here is a complete example that shows actually computing the integral closure of S via singular:

sage: R.<x,y> = QQ[]
sage: I = singular(R.ideal([y^2 - x^3])); I
-x^3+y^2
sage: I.normal()
:
:
//   characteristic : 0
//   number of vars : 3
//        block   1 : ordering dp
//                  : names    T(1)
//        block   2 : ordering dp
//                  : names    x y
//        block   3 : ordering C
:
:
_=x^2
_=y


If you read the documentation I linked to above, you might see what the output means (after 3 minutes, I didn't). To make this a nice easy-to-use function in Sage, you would have to decide on exactly what the output should be in Sage, then implement a function for Sage that (under the hood) would just call the normal command in Singular. This would be a great project to get you into Sage development.

more

I believe this can be easily computed with Macaulay-2, as documented here: http://www.math.uiuc.edu/Macaulay2/do... (BTW, this is yet another reason to integrate Sage with Macaulay by default, not only as a optional package.)

more