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 .00334514) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0001059) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00541938) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .009172) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0139177) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00652136) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00516812) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00515068) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00090574) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0006533) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00065984) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00442478) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00504198) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00664386) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00684326) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00446784) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00609116) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0050572) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00557104) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0058774) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002602) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000829) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000228) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002702) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00007978) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002378) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00314724) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00007842) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00006742) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00054556) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000501) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00197284) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00230444) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .0003838) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00031116) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00066194) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00063674) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00253892) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00283288) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002416) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002636) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .00003388) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .00003962) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0154103 #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 .0527946) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00013324) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00578158) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00937564) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0142013) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00666706) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0053196) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0053592) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00094222) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00066616) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00066428) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0046128) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00517982) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0068879) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00707042) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00463508) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00633944) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0051848) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00586172) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00621506) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002882) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00008106) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00001968) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002646) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00007868) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000211) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0032637) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000852) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00006438) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00055066) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00050878) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00201348) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00234036) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00040208) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00031956) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .0006693) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00065912) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00268356) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00299166) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000258) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002732) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .0131386) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .0120489) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00055016) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00053602) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .0001393) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .00013288) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000293) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002866) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0160744 #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.