Ask Your Question

Revision history [back]

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.