Input TRS: 1: plus(x,y) -> plusIter(x,y,0()) 2: plusIter(x,y,z) -> ifPlus(le(x,z),x,y,z) 3: ifPlus(true(),x,y,z) -> y 4: ifPlus(false(),x,y,z) -> plusIter(x,s(y),s(z)) 5: le(s(x),0()) -> false() 6: le(0(),y) -> true() 7: le(s(x),s(y)) -> le(x,y) 8: sum(xs) -> sumIter(xs,0()) 9: sumIter(xs,x) -> ifSum(isempty(xs),xs,x,plus(x,head(xs))) 10: ifSum(true(),xs,x,y) -> x 11: ifSum(false(),xs,x,y) -> sumIter(tail(xs),y) 12: isempty(nil()) -> true() 13: isempty(cons(x,xs)) -> false() 14: head(nil()) -> error() 15: head(cons(x,xs)) -> x 16: tail(nil()) -> nil() 17: tail(cons(x,xs)) -> xs 18: a() -> b() 19: a() -> c() Number of strict rules: 19 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #plusIter(x,y,z) -> #ifPlus(le(x,z),x,y,z) #2: #plusIter(x,y,z) -> #le(x,z) #3: #sumIter(xs,x) -> #ifSum(isempty(xs),xs,x,plus(x,head(xs))) #4: #sumIter(xs,x) -> #isempty(xs) #5: #sumIter(xs,x) -> #plus(x,head(xs)) #6: #sumIter(xs,x) -> #head(xs) #7: #ifSum(false(),xs,x,y) -> #sumIter(tail(xs),y) #8: #ifSum(false(),xs,x,y) -> #tail(xs) #9: #le(s(x),s(y)) -> #le(x,y) #10: #plus(x,y) -> #plusIter(x,y,0()) #11: #sum(xs) -> #sumIter(xs,0()) #12: #ifPlus(false(),x,y,z) -> #plusIter(x,s(y),s(z)) Number of SCCs: 3, DPs: 5, edges: 5 SCC { #9 } Removing DPs: Order(PosReal,>,Sum)... succeeded. a() weight: 0 isempty(x1) weight: 0 le(x1,x2) weight: 0 plusIter(x1,x2,x3) weight: 0 #ifSum(x1,x2,x3,x4) weight: 0 s(x1) weight: (/ 1 2) + x1 #le(x1,x2) weight: x1 b() weight: 0 ifSum(x1,x2,x3,x4) weight: 0 #plus(x1,x2) weight: 0 #isempty(x1) weight: 0 false() weight: 0 sumIter(x1,x2) weight: 0 #head(x1) weight: 0 c() weight: 0 true() weight: 0 sum(x1) weight: 0 tail(x1) weight: 0 error() weight: 0 0() weight: 0 nil() weight: 0 #tail(x1) weight: 0 #sumIter(x1,x2) weight: 0 ifPlus(x1,x2,x3,x4) weight: 0 plus(x1,x2) weight: 0 head(x1) weight: 0 cons(x1,x2) weight: 0 #a() weight: 0 #ifPlus(x1,x2,x3,x4) weight: 0 #sum(x1) weight: 0 #plusIter(x1,x2,x3) weight: 0 Usable rules: { } Removed DPs: #9 Number of SCCs: 2, DPs: 4, edges: 4 SCC { #3 #7 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... succeeded. a() weight: 0 isempty(x1) weight: max{0, (/ 1 2) + x1} le(x1,x2) weight: max{0, (/ 1 8) + x1, (/ 13 8) + x2} plusIter(x1,x2,x3) weight: max{0, (/ 1 8) + x2} #ifSum(x1,x2,x3,x4) weight: max{0, (- (/ 9 8)) + x1, (/ 1 8) + x2, (- (/ 5 8)) + x3, (- (/ 1 4)) + x4} s(x1) weight: (max (- (/ 1 4)) 0) #le(x1,x2) weight: 0 b() weight: 0 ifSum(x1,x2,x3,x4) weight: 0 #plus(x1,x2) weight: 0 #isempty(x1) weight: 0 false() weight: (/ 11 8) sumIter(x1,x2) weight: 0 #head(x1) weight: 0 c() weight: 0 true() weight: (/ 1 2) sum(x1) weight: 0 tail(x1) weight: max{0, (- (/ 1 4)) + x1} error() weight: 0 0() weight: (/ 1 4) nil() weight: 0 #tail(x1) weight: 0 #sumIter(x1,x2) weight: max{0, (/ 1 8) + x1, (- (/ 1 2)) + x2} ifPlus(x1,x2,x3,x4) weight: max{0, (/ 1 8) + x3} plus(x1,x2) weight: max{0, (- (/ 1 4)) + x1, (/ 1 8) + x2} head(x1) weight: max{0, (- (/ 1 4)) + x1} cons(x1,x2) weight: max{0, (/ 7 8) + x2 + x1} #a() weight: 0 #ifPlus(x1,x2,x3,x4) weight: 0 #sum(x1) weight: 0 #plusIter(x1,x2,x3) weight: 0 Usable rules: { 1..4 12..17 } Removed DPs: #7 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #1 #12 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... Order(PosReal,>,Sum-Sum; PosReal,≥,Sum-Sum)... Order(PosReal,>,Sum-Sum; NegReal,≥,Sum)... Order(PosReal,>,MaxSum-Sum; NegReal,≥,Sum)... failed. Removing edges: failed. Finding a loop... failed. MAYBE