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 .00121798)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000057174)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00240164)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00357718)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0168849)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00403173)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00308897)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00319882)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000610924)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000417806)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000385123)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00288703)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00310193)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00389982)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00410801)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00261214)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00356471)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00296896)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00364406)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00354242)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000015994)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000053659)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000012605)  #primes = 2 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000016092)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000060819)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000015973)  #primes = 4 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00200405)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000051718)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000041943)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000380523)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000319308)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00118435)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00139872)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000221465)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000200886)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000407521)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000358419)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00153315)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00175344)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000016184)  #primes = 7 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000017859)  #primes = 8 #prunedViaCodim = 0
  Strategy: IndependentSet    (time .000021496)  #primes = 9 #prunedViaCodim = 0
  Strategy: IndependentSet    (time .000022584)  #primes = 10 #prunedViaCodim = 0
Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00876831
#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 .00207703)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000071071)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0035676)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00561516)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00834846)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0039208)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00313621)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .003187)   #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000604455)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000402744)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000440646)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00272038)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .002965)   #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00425158)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0039878)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00261783)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00347606)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00292693)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00307361)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00201794)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000009644)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000032587)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000007388)  #primes = 2 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000008988)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000032382)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000006705)  #primes = 4 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00108392)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000035337)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000025632)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000233187)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000170412)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000733173)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000807331)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000123391)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000109405)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000230168)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000197092)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00087937)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00100463)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000008751)  #primes = 7 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000008549)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .00444725)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .00412086)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .000211618)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .000165081)  #primes = 8 #prunedViaCodim = 0
  Strategy: Linear            (time .000043292)  #primes = 8 #prunedViaCodim = 0
  Strategy: Linear            (time .000047723)  #primes = 8 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000010806)  #primes = 9 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000011483)  #primes = 10 #prunedViaCodim = 0
Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00487549
#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 :