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 .00116119) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000034919) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00184689) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00344793) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0206287) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00208867) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0016563) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00167191) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000313294) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000214351) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000215094) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00147181) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00207225) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00221112) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00227323) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00147667) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00203675) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00214258) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00191164) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00204967) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008597) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000024348) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005172) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006264) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000020089) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006619) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00103112) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000022625) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000020245) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000199852) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000279661) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000844852) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000880711) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000122615) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000096467) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000289041) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000422394) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00107331) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00122017) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000010247) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006039) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000011314) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000008949) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00597219 #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 .00121042) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000036256) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0019435) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00373043) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00535895) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00236037) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00283513) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00189946) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000333594) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000241441) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000242816) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00156372) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0018029) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00237468) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00264114) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00146915) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00200383) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00164256) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00183944) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00195371) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007948) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000021402) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005066) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005232) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003306) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008663) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00098717) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000023222) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000024486) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000188396) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000166801) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00065151) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000747657) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00011629) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000090102) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00021614) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000206781) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000819113) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .0010044) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005273) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007072) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00419133) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00361872) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000157432) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000155577) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000043068) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000043284) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005814) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006569) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00522117 #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.