next | previous | forward | backward | up | top | index | toc | home

minimalPrimes -- minimal associated primes of an ideal

Synopsis

Description

decompose is a synonym for minimalPrimes.

This function computes the minimal associated primes of the ideal I using characteristic sets. Geometrically, it decomposes the algebraic set defined by I.

If I is a monomial ideal, then a more efficient algorithm is used.

Example. The homogenized equations of the affine twisted cubic curve define the union of the projective twisted cubic curve and a line at infinity:

i1 : R=QQ[w,x,y,z];
i2 : I=ideal(x^2-y*w,x^3-z*w^2)

             2         3    2
o2 = ideal (x  - w*y, x  - w z)

o2 : Ideal of R
i3 : minimalPrimes I

                             2         2
o3 = {ideal (- x*y + w*z, - x  + w*y, y  - x*z), ideal (x, w)}

o3 : List
Note that the ideal is decomposed over the given field of coefficients and not over the extension field where the decomposition into absolutely irreducible factors occurs:
i4 : I = ideal(x^2+y^2)

            2    2
o4 = ideal(x  + y )

o4 : Ideal of R
i5 : minimalPrimes I

             2    2
o5 = {ideal(x  + y )}

o5 : List

For monomial ideals, the method used is essentially what is shown in the example.

i6 : I = monomialIdeal ideal"wxy,xz,yz"

o6 = monomialIdeal (w*x*y, x*z, y*z)

o6 : MonomialIdeal of R
i7 : minimalPrimes I

o7 = {monomialIdeal (x, y), monomialIdeal (w, z), monomialIdeal (x, z),
     ------------------------------------------------------------------------
     monomialIdeal (y, z)}

o7 : List
i8 : P = intersect(monomialIdeal(w,x,y),monomialIdeal(x,z),monomialIdeal(y,z))

o8 = monomialIdeal (x*y, w*z, x*z, y*z)

o8 : MonomialIdeal of R
i9 : minI = apply(flatten entries gens P, monomialIdeal @@ support)

o9 = {monomialIdeal (x, y), monomialIdeal (w, z), monomialIdeal (x, z),
     ------------------------------------------------------------------------
     monomialIdeal (y, z)}

o9 : List
It is sometimes useful to have the result P instead (where each generator encodes a single minimal prime. This can be obtained directly, as in the following code.
i10 : dual radical I

o10 = monomialIdeal (x*y, w*z, x*z, y*z)

o10 : MonomialIdeal of R
i11 : P == oo

o11 = true

See also

Ways to use minimalPrimes :