diff options
author | Gabriel Dos Reis <gdr@axiomatics.org> | 2016-01-17 22:53:01 -0800 |
---|---|---|
committer | Gabriel Dos Reis <gdr@axiomatics.org> | 2016-01-17 22:53:01 -0800 |
commit | d07fc9735f40e545edda456e15dbab783c500f6a (patch) | |
tree | 4d9fab82a7085b73a4b00d23389935503fdfc90d /src/algebra/idecomp.spad.pamphlet | |
parent | 5437d438937eb25eb320fef6e4fd6ebc91ca6dc9 (diff) | |
download | open-axiom-d07fc9735f40e545edda456e15dbab783c500f6a.tar.gz |
subtractIfCan$CancellationAbelianMonoid: return the more principled Maybe %
Diffstat (limited to 'src/algebra/idecomp.spad.pamphlet')
-rw-r--r-- | src/algebra/idecomp.spad.pamphlet | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/algebra/idecomp.spad.pamphlet b/src/algebra/idecomp.spad.pamphlet index 51ff3a62..9e53d263 100644 --- a/src/algebra/idecomp.spad.pamphlet +++ b/src/algebra/idecomp.spad.pamphlet @@ -298,15 +298,16 @@ IdealDecompositionPackage(vl,nv) : C == T -- take away nv, now doesn't Jd:=generators(groebner J) not one?(#(factors factor Jd.last)) => return false i:=subtractIfCan(#truelist,1) - (i case "failed") => return true + (i case nothing) => return true + k: NNI := i JR:=(reverse Jd);JM:=groebnerIdeal([JR.first]);JP:List(DPoly):=[] for f in JR.rest repeat - if not ismonic(f,truelist.i) then + if not ismonic(f,truelist.k) then if not inRadical?(f,JM) then return false JP:=cons(f,JP) else - x:=truelist.i - i:=(i-1)::NNI + x:=truelist.k + k := (k-1)::NNI if not testPower(univariate(f,x),x,JM) then return false JM :=groebnerIdeal(append(cons(f,JP),generators JM)) true |