1 | initial version |
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: singular.load('normal.lib')
sage: I.normal()
[1]:
[1]:
// characteristic : 0
// number of vars : 3
// block 1 : ordering dp
// : names T(1)
// block 2 : ordering dp
// : names x y
// block 3 : ordering C
[2]:
[1]:
_[1]=x^2
_[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.