# integralClosure(Ideal,ZZ) -- integral closure of an ideal in an affine domain

## Description

The method used is described in Vasconcelos’ book, Computational methods in commutative algebra and algebraic geometry, Springer, section 6.6. Basically, one first computes the Rees Algebra of the ideal, and then one reads off the integral closure of any of the powers of the ideal, using linear algebra.
 `i1 : S = ZZ/32003[a,b,c];` ```i2 : F = a^2*b^2*c+a^3+b^3+c^3 2 2 3 3 3 o2 = a b c + a + b + c o2 : S``` ```i3 : J = ideal jacobian ideal F 2 2 2 2 2 2 2 o3 = ideal (2a*b c + 3a , 2a b*c + 3b , a b + 3c ) o3 : Ideal of S``` ```i4 : time integralClosure J -- used 2.949 seconds 2 2 2 2 2 2 2 o4 = ideal (b c - 16000a*c, a c - 16000b*c, a*b c - 16000a , a b*c - ------------------------------------------------------------------------ 2 3 2 2 2 5 16000b , a c - 16000a*b, a b + 3c , a b + 15997a*c) o4 : Ideal of S``` ```i5 : time integralClosure(J, Strategy=>{RadicalCodim1}) -- used 1.591 seconds 2 2 2 2 2 2 2 o5 = ideal (b c - 16000a*c, a c - 16000b*c, a*b c - 16000a , a b*c - ------------------------------------------------------------------------ 2 3 2 2 2 5 16000b , a c - 16000a*b, a b + 3c , a b + 15997a*c) o5 : Ideal of S``` ```i6 : integralClosure(J,2) 5 2 4 3 3 2 3 2 4 4 3 o6 = ideal (b c - 2b c - 16000a*b - 3a*c , a b c - 2a c - 16000b - 3b*c , ------------------------------------------------------------------------ 3 2 5 4 3 5 2 3 3 4 a b c - b c - 16000a + 16000a*b , a c - a b c - 16000a b + 16000b , ------------------------------------------------------------------------ 6 2 2 2 3 3 4 2 2 4 3 3 a*b*c - 16000a b c - 12000a c - 12000b c - 8003c , a b c - 16000a c ------------------------------------------------------------------------ 3 3 2 2 3 3 3 2 4 2 2 - 16000b c + 8003a*b*c , a b c - 16000a b*c - 16000b c + 8003a*b c, ------------------------------------------------------------------------ 3 2 3 4 2 3 2 2 4 3 2 2 2 a b c - 16000a c - 16000a*b c + 8003a b*c, a b*c + 3a b c + ------------------------------------------------------------------------ 3 2 4 2 3 2 4 3 3 2 4 4 8003b c, a b c + 3a b c + 8003a , a b c - 16000a b*c - 16000a*b c + ------------------------------------------------------------------------ 2 2 4 2 2 2 3 4 5 2 3 2 3 6 2 8003a b , a b c + 3a b c + 8003b , a b*c + 3a b c + 8003a*b , a c + ------------------------------------------------------------------------ 4 2 2 3 4 4 2 2 3 2 2 4 3 3a b*c + 8003a b , a b c - 16000a b + 3a*b c - 15997a c , a b c - ------------------------------------------------------------------------ 2 4 2 3 2 2 5 2 3 3 3 3 16000a b + 3a b*c - 15997b c , a b c - 16000a b + 3a c - ------------------------------------------------------------------------ 2 4 4 2 2 2 4 7 2 2 2 3 3 15997a*b*c , a b + 6a b c + 9c , a b + 6a b c + 15997a c - 15997b c + ------------------------------------------------------------------------ 4 8 4 2 3 2 5 2 7 3 9c , a b*c + 15988a c + 15997a*b c + 9a*c + 15988a b*c, a b + ------------------------------------------------------------------------ 5 4 3 3 10 2 4 2 5 15988b c + 8021a - 27a*b + 15988a*c , a b + 27a b + 15988a*b + ------------------------------------------------------------------------ 2 3 2 2 27a*b c - 7940a c ) o6 : Ideal of S```

## Caveat

It is usally much faster to use integralClosure(J,d) rather than integralClosure(Jd)