Given an ideal I and an integer n, this method returns the n-th symbolic power of I. Various algorithms are used, in the following order:
1. If I is a homogeneous ideal in a polynomial ring whose height is one less than the dimension of the ring, returns the saturation of I;
2. If I is squarefree monomial ideal, intersects the powers of the associated primes of I’
3. If I is monomial ideal, but not squarefree, takes a primary decomposition of I, picks the maximal elements in it, and intersects their powers;
4. If I is prime, computes a primary decomposition of In and intersects the components with radical I.
5. If all else fails, compares the radicals of a primary decomposition of In with the associated primes of I, and intersects the components corresponding to minimal primes.
i1 : B = QQ[x,y,z]; |
i2 : f = map(QQ[t],B,{t^3,t^4,t^5}) 3 4 5 o2 = map(QQ[t],B,{t , t , t }) o2 : RingMap QQ[t] <--- B |
i3 : I = ker f; o3 : Ideal of B |
i4 : symbolicPower(I,2) 4 2 2 2 2 3 3 2 2 3 3 2 4 3 o4 = ideal (y - 2x*y z + x z , x y - x y*z - y z + x*z , x y - x z - y z ------------------------------------------------------------------------ 2 5 3 2 3 + x*y*z , x + x*y - 3x y*z + z ) o4 : Ideal of B |
When computing symbolic powers of a quasi-homogeneous ideal, the method runs faster if the ideal is changed to be homegeneous.
i5 : P = ker map(QQ[t],QQ[x,y,z],{t^3,t^4,t^5}) 2 2 2 3 o5 = ideal (y - x*z, x y - z , x - y*z) o5 : Ideal of QQ[x, y, z] |
i6 : isHomogeneous P o6 = false |
i7 : time symbolicPower(P,4); -- used 0.629251 seconds o7 : Ideal of QQ[x, y, z] |
i8 : Q = ker map(QQ[t],QQ[x,y,z, Degrees => {3,4,5}],{t^3,t^4,t^5}) 2 3 2 2 o8 = ideal (y - x*z, x - y*z, x y - z ) o8 : Ideal of QQ[x, y, z] |
i9 : isHomogeneous Q o9 = true |
i10 : time symbolicPower(Q,4); -- used 0.148107 seconds o10 : Ideal of QQ[x, y, z] |