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 .00150343) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000055353) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00269141) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00447258) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0373439) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00310652) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00285318) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0025311) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00052488) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00029779) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000369538) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00232067) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0022979) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00301264) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00313692) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00205791) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00279679) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00235294) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00244365) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0028005) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000017385) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000039561) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009692) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000014908) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000037383) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00001037) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00150191) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000041294) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000032606) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000374614) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000259383) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000936978) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00107761) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000229781) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000152429) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000384295) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000277518) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00110601) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00132997) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000011511) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000016449) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000019892) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000017084) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00720945 #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 .00155374) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000055073) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00265549) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00455941) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00683999) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00305849) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00236263) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00240328) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000438874) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000308926) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000302424) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00205012) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00220992) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00312361) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00311114) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00187216) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00252436) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00209884) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00347934) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00270814) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00001634) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000040683) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000011988) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000012808) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000034534) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000010403) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00145025) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000042298) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000032816) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000286625) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000258382) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000922623) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00118843) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00017505) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000142369) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000288355) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000266716) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00109737) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .0012435) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000012009) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000013445) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .0059511) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00507981) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000246578) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000221099) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000059734) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000049001) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000015475) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000016282) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00684577 #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 |
This will eventually be made to work over GF(q), and over other fields too.