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 .00103037) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003475) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00179352) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00299127) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00470524) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00209914) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00168114) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00172525) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0252534) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000264908) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000251832) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00166654) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0018215) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00210589) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00211771) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00131737) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00182218) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00151736) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00166736) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0018048) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000009076) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000025221) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006533) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008669) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002428) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007066) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000990266) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002405) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000021078) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000205506) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00018914) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000639567) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000744034) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000131266) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000104197) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000208742) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000200061) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000811193) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000920909) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007447) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008108) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .000010177) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .000011897) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00464124 #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 .00104038) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000033899) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00181441) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0030468) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00477048) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00209952) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00168615) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00172172) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000332319) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000223861) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .000217702) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00139763) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00158913) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00211995) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00218778) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00138543) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00207555) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00169577) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00186869) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00182088) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00000708) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000025006) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006571) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008001) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000023527) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000006794) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000952485) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000024715) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000021329) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000201665) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000188434) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000626561) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000743882) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000128928) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .000101197) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000201848) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000189608) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000790291) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .000899363) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000007222) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008254) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00385682) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00351529) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000162715) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000158533) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000035717) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .000037155) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008644) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .000008707) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .00466061 #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.