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 .00108469) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003309) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00190363) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00312723) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00463167) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00205675) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00163469) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00177566) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000322062) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000222861) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000219298) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0014035) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00164365) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00216616) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00222843) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00143406) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0019416) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00160753) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00185192) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0019012) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006655) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000019565) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005384) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005691) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000020713) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006427) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000938813) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000021532) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000020137) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000191672) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000179083) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000633249) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000737306) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000120502) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000090458) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00020623) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000195835) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000823845) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00094064) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006952) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005884) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000010152) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000008974) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00399425 #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 .00110534) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000032286) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00181019) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00299719) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00468262) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00218475) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00171445) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00176303) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000325184) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000224161) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000218972) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00143488) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00167803) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00219313) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00225245) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0203586) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0020065) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00159149) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00174707) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00188695) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005812) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002059) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005471) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007524) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000021913) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000005451) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00092725) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000021801) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000018531) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000194768) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000183501) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000615994) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000719375) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000119237) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000091857) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000206979) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000198485) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00081307) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000925251) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007057) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006041) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00383416) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00364188) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000180675) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000176729) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000044735) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000040166) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006974) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009453) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00401381 #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.