next | previous | forward | backward | up | top | index | toc | Macaulay2 website
IntegralClosure :: integralClosure(Ideal,RingElement,ZZ)

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

Synopsis

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 integral closure of 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 0.673179 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 0.556639 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 : J2' = 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

Sometimes it is useful to give the specific nonzerodivisor $f$ in the ideal.

i7 : assert(integralClosure(J, J_2, 2) == J2')

Caveat

It is usually much faster to use integralClosure(J,d) rather than integralClosure(J^d). Also, the element f (or the first generator of J, if f is not given) must be a nonzero divisor in the ring. This is not checked.

See also