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
|