# symbolicPower -- computes the symbolic power of an ideal.

## Synopsis

• Usage:
symbolicPower(I,n)
• Inputs:
• Optional inputs:
• CIPrimes => ..., default value false, compute the symbolic power by taking the intersection of the powers of the primary components
• UseMinimalPrimes => ..., default value false, an option to only use minimal primes to calculate symbolic powers
• Outputs:
• an ideal, the n-th symbolic power of I

## Description

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 $I^n$;

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 $I^n$ and intersects the components with radical $I$;

6. If all else fails, compares the radicals oyf a primary decomposition of $I^n$ 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 homogeneous.

 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..z] i6 : isHomogeneous P o6 = false i7 : time symbolicPower(P,4); -- used 0.238965 seconds o7 : Ideal of QQ[x..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..z] i9 : isHomogeneous Q o9 = true i10 : time symbolicPower(Q,4); -- used 0.0930434 seconds o10 : Ideal of QQ[x..z]