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 .000914278) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002655) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00146201) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00241247) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00375189) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00167616) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00132793) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00136906) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000262788) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000183333) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000186352) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00115279) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00134376) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00178581) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00182192) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00116906) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00158622) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00132523) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00146219) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00156272) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005499) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000016014) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00000469) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004874) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000017215) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005747) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000758419) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000018086) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000015403) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000152099) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000142957) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000504553) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000600887) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000098393) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000079548) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000171018) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000165875) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000674446) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000763511) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004862) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004947) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000007501) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000007196) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00382761 #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 .000930312) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000027351) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00145734) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00249734) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0189884) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00174034) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00136771) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00142159) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000268364) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000188604) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000190759) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00121632) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0014191) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00184691) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00189868) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00120818) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00165346) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0013775) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00151908) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00163157) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005015) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000018195) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004637) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004854) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000017592) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004785) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000819552) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000018951) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000019756) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000155245) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000145092) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000530541) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000626796) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000102521) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000080316) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000175324) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000177582) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000707461) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00079415) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004974) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000004945) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00331286) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00321745) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000149463) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00013334) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000035138) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000035066) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006479) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005542) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .004056 #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.