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 .00451402) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00013682) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00702022) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0119643) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .018132) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0086276) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0071142) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00690666) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00122114) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00091472) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00089354) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00610018) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00693142) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00907316) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0089407) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0058787) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00805646) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00669302) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00741548) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0078422) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002928) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000948) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002326) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003018) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00015562) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002584) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0041672) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0001275) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00007526) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .0007547) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00065388) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00261988) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .0031567) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00053464) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .0004097) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00099108) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00082356) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00366714) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00383716) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00004222) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000452) #primes = 8 #prunedViaCodim = 0 Strategy: IndependentSet (time .00003738) #primes = 9 #prunedViaCodim = 0 Strategy: IndependentSet (time .00004222) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0170635 #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 .00450644) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00013116) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0070138) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0120328) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0181621) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00852304) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .0067665) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00677492) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00121848) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00086706) #primes = 0 #prunedViaCodim = 0 Strategy: Factorization (time .00089986) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00592878) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00671472) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00881498) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0092601) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00592156) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00817396) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00675808) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .0074708) #primes = 0 #prunedViaCodim = 0 Strategy: Linear (time .00784072) #primes = 0 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .0000277) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00011832) #primes = 1 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002288) #primes = 2 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003118) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00010436) #primes = 3 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002612) #primes = 4 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00413392) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00010922) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00010646) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00071528) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00066818) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00259768) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00295082) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00048726) #primes = 6 #prunedViaCodim = 0 Strategy: Factorization (time .00040774) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00086178) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00083832) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .0034756) #primes = 6 #prunedViaCodim = 0 Strategy: Linear (time .00381304) #primes = 6 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002582) #primes = 7 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00002936) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .016784) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .0155531) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .000864) #primes = 8 #prunedViaCodim = 0 Strategy: Birational (time .00078712) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .00017648) #primes = 8 #prunedViaCodim = 0 Strategy: Linear (time .00014506) #primes = 8 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003144) #primes = 9 #prunedViaCodim = 0 Strategy: DecomposeMonomials(time .00003298) #primes = 10 #prunedViaCodim = 0 Converting annotated ideals to ideals and selecting minimal primes... Time taken : .0170324 #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.