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.59352 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.0291216 seconds
o10 : Ideal of QQ[x, y, z]
|