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 .00111763) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000039576) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .001931) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00334532) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00529439) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00236732) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00192485) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00188938) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00040353) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000232677) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000224397) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00150279) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00185685) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00233575) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00241623) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00149869) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00219828) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00180456) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00209115) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00211003) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009378) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000030293) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007543) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000012798) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003204) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008697) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0012243) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000047456) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000025154) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000216998) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000210394) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000698095) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .0008751) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000149959) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000126162) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000218879) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00023118) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000862243) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00105743) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008574) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00001187) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000016727) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000014634) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00521472 #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 .00119142) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000038797) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0109857) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00324254) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0051311) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00223147) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0017754) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00182648) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000352196) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000246661) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000226433) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00156558) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00170409) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00232158) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00236181) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00149446) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00205232) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00174154) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00184656) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00196574) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000010526) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000031954) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00001039) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00001216) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000038787) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008927) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00121042) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000041058) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000025445) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000246109) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000226864) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000721909) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000827019) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000136477) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000131056) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000239766) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000203455) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00101032) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00102444) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008646) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000012638) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00441738) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00415718) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000203144) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000195321) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000046571) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000041826) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000010582) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000013232) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00536551 #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.