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 .00103061) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000036916) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0019125) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00321635) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00506081) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00226905) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00178693) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00182356) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000347743) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000231042) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000252846) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00144841) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00166958) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00220513) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00228419) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00141252) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00197077) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0016383) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00181534) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00193436) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009111) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000037659) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007281) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009237) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000029789) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006846) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00107558) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000031122) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000024041) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000216411) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000200935) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000757905) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000803832) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000149215) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000142372) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000211446) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000195905) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000839567) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00096088) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009162) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000010155) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000011451) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000012678) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00434299 #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 .00103682) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000037725) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00191977) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0031786) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00504125) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00223974) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00184401) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00192171) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000350464) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000261621) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000237817) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00150513) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00172407) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0117384) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00226109) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00141607) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0019311) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00158897) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00175542) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00186132) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007582) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000030717) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006635) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000010603) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000029794) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006529) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00105098) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000030216) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000032972) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000215958) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000198274) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000697548) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000784333) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00013472) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000106865) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000238719) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000194223) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000818213) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000931682) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008948) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009931) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .0041749) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00391847) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000213063) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000226687) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000041025) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000042813) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000011041) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000012605) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00461835 #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.