# minimalPrimes -- minimal primes of an ideal

## Synopsis

• Usage:
minimalPrimes I
minprimes I
decompose I
• Inputs:
• Optional inputs:
• Verbosity => an integer, default value 0, a larger number will print more information during the computation
• Strategy => , default value null, specifies the computation strategy to use. If it is slow, try Legacy, Birational, or NoBirational. The strategies might change in the future, and there are other undocumented ways to fine-tune the algorithm.
• CodimensionLimit => an integer, default value infinity, stop after finding primes of codimension less than or equal to this value
• MinimalGenerators => , default value true, if false, the minimal primes will not be minimalized
• CheckPrimeOnly
• SquarefreeFactorSize
• Outputs:
• a list, with entries the minimal associated primes of I

## 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