Macaulay2 » Documentation
Packages » MinimalPrimes > minimalPrimes
next | previous | forward | backward | up | index | toc

minimalPrimes -- minimal primes of an ideal

Synopsis

Description

Given an ideal in a polynomial ring, or a quotient of a polynomial ring whose base ring is either QQ or ZZ/p, this function computes the minimal associated primes of the ideal I. Geometrically, it decomposes the algebraic set defined by I.

i1 : R = ZZ/32003[a..e]

o1 = R

o1 : PolynomialRing
i2 : I = ideal"a2b-c3,abd-c2e,ade-ce2"

             2     3           2              2
o2 = ideal (a b - c , a*b*d - c e, a*d*e - c*e )

o2 : Ideal of R
i3 : C = minprimes I;
i4 : netList C

     +---------------------------+
o4 = |ideal (c, a)               |
     +---------------------------+
     |              2     3      |
     |ideal (e, d, a b - c )     |
     +---------------------------+
     |ideal (e, c, b)            |
     +---------------------------+
     |ideal (d, c, b)            |
     +---------------------------+
     |ideal (d - e, b - c, a - c)|
     +---------------------------+
     |ideal (d + e, b - c, a + c)|
     +---------------------------+
i5 : C2 = minprimes(I, Strategy=>"NoBirational", Verbosity=>2)

                                  2     3
o5 = {ideal (c, a), ideal (e, d, a b - c ), ideal (e, c, b), ideal (d, c, b),
     ------------------------------------------------------------------------
     ideal (d - e, b - c, a - c), ideal (d + e, b - c, a + c)}

o5 : List
i6 : C1 = minprimes(I, Strategy=>"Birational", Verbosity=>2)

                                  2     3
o6 = {ideal (c, a), ideal (e, d, a b - c ), ideal (e, c, b), ideal (d, c, b),
     ------------------------------------------------------------------------
     ideal (d - e, b - c, a - c), ideal (d + e, b - c, a + c)}

o6 : List

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

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

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

o8 : Ideal of R
i9 : minimalPrimes I

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

o9 : 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:

i10 : I = ideal(x^2 + y^2)

             2    2
o10 = ideal(x  + y )

o10 : Ideal of R
i11 : minimalPrimes I

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

o11 : List

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

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

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

o12 : MonomialIdeal of R
i13 : minimalPrimes I

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

o13 : List
i14 : P = intersect(monomialIdeal(w,x,y), monomialIdeal(x,z), monomialIdeal(y,z))

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

o14 : MonomialIdeal of R
i15 : minI = apply(P_*, monomialIdeal @@ support)

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

o15 : List

It is sometimes useful to compute P instead, where each generator encodes a single minimal prime. This can be obtained directly, as in the following code.

i16 : dual radical I

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

o16 : MonomialIdeal of R
i17 : P == oo

o17 = true

See also

Ways to use minimalPrimes :

For the programmer

The object minimalPrimes is a method function with options.