From d07fc9735f40e545edda456e15dbab783c500f6a Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis Date: Sun, 17 Jan 2016 22:53:01 -0800 Subject: subtractIfCan$CancellationAbelianMonoid: return the more principled Maybe % --- src/algebra/idecomp.spad.pamphlet | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/algebra/idecomp.spad.pamphlet') 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 -- cgit v1.2.3