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 .00124982) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000043991) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00231031) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00388945) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00614678) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00268747) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00213876) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00229481) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00044339) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000284456) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000277806) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00180816) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00201314) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00285661) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00267622) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00171749) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00227199) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00195491) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00211076) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0023058) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008634) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00004612) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007607) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000022211) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000028799) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000013131) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00121361) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002994) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000031043) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000236374) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000224601) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000790596) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00090803) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000193624) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000128601) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000243847) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000231405) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000985015) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00110274) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008256) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009917) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .00001776) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000013807) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0049409 #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 .00122098) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000044991) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00240125) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00381604) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00631783) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00279546) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00230889) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00227349) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00041532) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000280071) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000299363) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00177696) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00219448) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00273075) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0028175) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00182124) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00252337) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00204823) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0023007) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00225506) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000016313) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000035006) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007013) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009815) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000031014) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000027744) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0013224) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000031433) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000029913) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000269336) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000243752) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000845091) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00117631) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00018641) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000129532) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000249794) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000239835) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00110635) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00129998) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008042) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000022648) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00511982) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00440897) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000260016) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000228711) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000051386) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .00006688) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009557) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000011149) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00505529 #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.