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 .00104664)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000029343)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00165512)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00274854)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00425941)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00192544)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00151484)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00156715)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00029942)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000211169)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000205529)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00145262)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00159112)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00205248)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00215336)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00137126)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00185624)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00154454)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .0017112)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00180827)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000007202)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00001978)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000004759)  #primes = 2 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000007075)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000018911)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000004861)  #primes = 4 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000904332)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000019156)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000019581)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000174104)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000165632)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000597175)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000702709)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000117241)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .00009)    #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000199909)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000197619)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000801902)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000914519)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000006636)  #primes = 7 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000005202)  #primes = 8 #prunedViaCodim = 0
  Strategy: IndependentSet    (time .000008788)  #primes = 9 #prunedViaCodim = 0
  Strategy: IndependentSet    (time .000007785)  #primes = 10 #prunedViaCodim = 0
Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00443888
#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 .00108738)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000031885)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0017157)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00285035)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0047945)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .0020319)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00157617)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .00162703)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000303032)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000213779)  #primes = 0 #prunedViaCodim = 0
  Strategy: Factorization     (time .000210855)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00138165)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00160253)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00235824)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00242003)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00150996)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00183934)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00153113)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00170914)  #primes = 0 #prunedViaCodim = 0
  Strategy: Linear            (time .00180688)  #primes = 0 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000007777)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000019096)  #primes = 1 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000006102)  #primes = 2 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000007584)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000019199)  #primes = 3 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000004946)  #primes = 4 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000931019)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000021216)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000019203)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000187776)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000163158)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000597835)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000701215)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000113298)  #primes = 6 #prunedViaCodim = 0
  Strategy: Factorization     (time .000089919)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000203251)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .00018674)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000779839)  #primes = 6 #prunedViaCodim = 0
  Strategy: Linear            (time .000875452)  #primes = 6 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000005897)  #primes = 7 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .0000055)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .00376889)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .00330968)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .00014226)  #primes = 8 #prunedViaCodim = 0
  Strategy: Birational        (time .000135494)  #primes = 8 #prunedViaCodim = 0
  Strategy: Linear            (time .000037734)  #primes = 8 #prunedViaCodim = 0
  Strategy: Linear            (time .000037965)  #primes = 8 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .00000578)  #primes = 9 #prunedViaCodim = 0
  Strategy: DecomposeMonomials(time .000005783)  #primes = 10 #prunedViaCodim = 0
Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00430701
#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 :