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 squarefree monomial ideal, intersects the powers of the associated primes of I;
2. If I is monomial ideal, but not squarefree, takes an irredundant primary decomposition of I and intersects the powers of those ideals;
3. If I is a saturated homogeneous ideal in a polynomial ring whose height is one less than the dimension of the ring, returns the saturation of In;
4. If I is an ideal with only degree one primary components, intersects the powers of the primary components of I.
5. If all the associated primes of I have the same height, computes a primary decomposition of In and intersects the components with radical I;
6. If all else fails, compares the radicals oyf 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 o4 = ideal (y - 2x*y z + x z , - x y + x y*z + y z - x*z , x y - x z - ------------------------------------------------------------------------ 3 2 5 3 2 3 y z + 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.10523 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.0119497 seconds o10 : Ideal of QQ[x, y, z] |