next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
MinimalPrimes :: minprimes

minprimes -- minimal primes in a polynomial ring over a field

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, return a list of minimal primes of the ideal.

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)
  Strategy: Linear            (time .00451402)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00013682)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00702022)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0119643)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .018132)   #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0086276)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0071142)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00690666)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00122114)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00091472)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00089354)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00610018)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00693142)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00907316)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0089407)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0058787)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00805646)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00669302)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00741548)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0078422)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002928)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .0000948)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002326)  #primes = 2 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00003018)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00015562)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002584)  #primes = 4 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .0041672)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .0001275)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00007526)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .0007547)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00065388)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00261988)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .0031567)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00053464)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .0004097)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00099108)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00082356)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00366714)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00383716)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00004222)  #primes = 7 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .0000452)  #primes = 8 #prunedViaCodim = 0
  Strategy: IndependentSet    (time .00003738)  #primes = 9 #prunedViaCodim = 0
  Strategy: IndependentSet    (time .00004222)  #primes = 10 #prunedViaCodim = 0
Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0170635
#minprimes=6 #computed=10

                                  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)
  Strategy: Linear            (time .00450644)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00013116)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0070138)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0120328)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0181621)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00852304)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0067665)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00677492)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00121848)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00086706)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00089986)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00592878)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00671472)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00881498)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0092601)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00592156)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00817396)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00675808)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0074708)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00784072)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .0000277)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00011832)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002288)  #primes = 2 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00003118)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00010436)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002612)  #primes = 4 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00413392)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00010922)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00010646)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00071528)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00066818)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00259768)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00295082)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00048726)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00040774)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00086178)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00083832)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .0034756)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00381304)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002582)  #primes = 7 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00002936)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .016784)   #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .0155531)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .000864)   #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .00078712)  #primes = 8 #prunedViaCodim = 0
  Strategy: Linear            (time .00017648)  #primes = 8 #prunedViaCodim = 0
  Strategy: Linear            (time .00014506)  #primes = 8 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00003144)  #primes = 9 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00003298)  #primes = 10 #prunedViaCodim = 0
Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0170324
#minprimes=6 #computed=10

                                  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

Caveat

This will eventually be made to work over GF(q), and over other fields too.

Ways to use minprimes :