Input TRS: 1: a__p(0()) -> 0() 2: a__p(s(X)) -> mark(X) 3: a__leq(0(),Y) -> true() 4: a__leq(s(X),0()) -> false() 5: a__leq(s(X),s(Y)) -> a__leq(mark(X),mark(Y)) 6: a__if(true(),X,Y) -> mark(X) 7: a__if(false(),X,Y) -> mark(Y) 8: a__diff(X,Y) -> a__if(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) 9: mark(p(X)) -> a__p(mark(X)) 10: mark(leq(X1,X2)) -> a__leq(mark(X1),mark(X2)) 11: mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3) 12: mark(diff(X1,X2)) -> a__diff(mark(X1),mark(X2)) 13: mark(0()) -> 0() 14: mark(s(X)) -> s(mark(X)) 15: mark(true()) -> true() 16: mark(false()) -> false() 17: a__p(X) -> p(X) 18: a__leq(X1,X2) -> leq(X1,X2) 19: a__if(X1,X2,X3) -> if(X1,X2,X3) 20: a__diff(X1,X2) -> diff(X1,X2) Number of strict rules: 20 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #a__p(s(X)) -> #mark(X) #2: #a__if(true(),X,Y) -> #mark(X) #3: #mark(p(X)) -> #a__p(mark(X)) #4: #mark(p(X)) -> #mark(X) #5: #mark(if(X1,X2,X3)) -> #a__if(mark(X1),X2,X3) #6: #mark(if(X1,X2,X3)) -> #mark(X1) #7: #mark(diff(X1,X2)) -> #a__diff(mark(X1),mark(X2)) #8: #mark(diff(X1,X2)) -> #mark(X1) #9: #mark(diff(X1,X2)) -> #mark(X2) #10: #mark(s(X)) -> #mark(X) #11: #a__if(false(),X,Y) -> #mark(Y) #12: #mark(leq(X1,X2)) -> #a__leq(mark(X1),mark(X2)) #13: #mark(leq(X1,X2)) -> #mark(X1) #14: #mark(leq(X1,X2)) -> #mark(X2) #15: #a__leq(s(X),s(Y)) -> #a__leq(mark(X),mark(Y)) #16: #a__leq(s(X),s(Y)) -> #mark(X) #17: #a__leq(s(X),s(Y)) -> #mark(Y) #18: #a__diff(X,Y) -> #a__if(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) #19: #a__diff(X,Y) -> #a__leq(mark(X),mark(Y)) #20: #a__diff(X,Y) -> #mark(X) #21: #a__diff(X,Y) -> #mark(Y) Number of SCCs: 1, DPs: 21, edges: 172 SCC { #1..21 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. #a__diff(x1,x2) weight: max{(/ 9 16) + x2, (/ 1 2) + x1} diff(x1,x2) weight: max{(/ 1 2) + x2, (/ 7 16) + x1} s(x1) weight: x1 false() weight: (/ 1 4) a__p(x1) weight: x1 leq(x1,x2) weight: max{(/ 5 16) + x2, (/ 3 16) + x1} a__leq(x1,x2) weight: max{(/ 5 16) + x2, (/ 3 16) + x1} true() weight: (/ 5 16) p(x1) weight: x1 #mark(x1) weight: (/ 1 16) + x1 0() weight: (/ 1 16) if(x1,x2,x3) weight: max{x3, (/ 1 16) + x2, (/ 1 8) + x1} a__diff(x1,x2) weight: max{(/ 1 2) + x2, (/ 7 16) + x1} mark(x1) weight: x1 #a__p(x1) weight: (/ 1 16) + x1 #a__leq(x1,x2) weight: max{(/ 3 16) + x2, (/ 1 8) + x1} #a__if(x1,x2,x3) weight: max{0, (/ 1 16) + x3, (/ 1 8) + x2} a__if(x1,x2,x3) weight: max{x3, (/ 1 16) + x2, (/ 1 8) + x1} Usable rules: { 1..20 } Removed DPs: #2 #6 #8 #9 #12..14 #16 #17 #19..21 Number of SCCs: 2, DPs: 9, edges: 25 SCC { #15 } 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