Input TRS: 1: plus(0(),x) -> x 2: plus(s(x),y) -> s(plus(x,y)) 3: times(0(),y) -> 0() 4: times(s(x),y) -> plus(y,times(x,y)) 5: p(s(x)) -> x 6: p(0()) -> 0() 7: minus(x,0()) -> x 8: minus(0(),x) -> 0() 9: minus(x,s(y)) -> p(minus(x,y)) 10: isZero(0()) -> true() 11: isZero(s(x)) -> false() 12: facIter(x,y) -> if(isZero(x),minus(x,s(0())),y,times(y,x)) 13: if(true(),x,y,z) -> y 14: if(false(),x,y,z) -> facIter(x,z) 15: factorial(x) -> facIter(x,s(0())) Number of strict rules: 15 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #plus(s(x),y) -> #plus(x,y) #2: #minus(x,s(y)) -> #p(minus(x,y)) #3: #minus(x,s(y)) -> #minus(x,y) #4: #facIter(x,y) -> #if(isZero(x),minus(x,s(0())),y,times(y,x)) #5: #facIter(x,y) -> #isZero(x) #6: #facIter(x,y) -> #minus(x,s(0())) #7: #facIter(x,y) -> #times(y,x) #8: #if(false(),x,y,z) -> #facIter(x,z) #9: #factorial(x) -> #facIter(x,s(0())) #10: #times(s(x),y) -> #plus(y,times(x,y)) #11: #times(s(x),y) -> #times(x,y) Number of SCCs: 4, DPs: 5, edges: 5 SCC { #1 } Removing DPs: Order(PosReal,>,Sum)... succeeded. facIter(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 #isZero(x1) weight: 0 minus(x1,x2) weight: 0 #plus(x1,x2) weight: x1 false() weight: 0 #p(x1) weight: 0 true() weight: 0 p(x1) weight: 0 #times(x1,x2) weight: 0 0() weight: 0 if(x1,x2,x3,x4) weight: 0 times(x1,x2) weight: 0 #minus(x1,x2) weight: 0 plus(x1,x2) weight: 0 #if(x1,x2,x3,x4) weight: 0 factorial(x1) weight: 0 isZero(x1) weight: 0 #factorial(x1) weight: 0 #facIter(x1,x2) weight: 0 Usable rules: { } Removed DPs: #1 Number of SCCs: 3, DPs: 4, edges: 4 SCC { #11 } Removing DPs: Order(PosReal,>,Sum)... succeeded. facIter(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 #isZero(x1) weight: 0 minus(x1,x2) weight: 0 #plus(x1,x2) weight: 0 false() weight: 0 #p(x1) weight: 0 true() weight: 0 p(x1) weight: 0 #times(x1,x2) weight: x1 0() weight: 0 if(x1,x2,x3,x4) weight: 0 times(x1,x2) weight: 0 #minus(x1,x2) weight: 0 plus(x1,x2) weight: 0 #if(x1,x2,x3,x4) weight: 0 factorial(x1) weight: 0 isZero(x1) weight: 0 #factorial(x1) weight: 0 #facIter(x1,x2) weight: 0 Usable rules: { } Removed DPs: #11 Number of SCCs: 2, DPs: 3, edges: 3 SCC { #3 } Removing DPs: Order(PosReal,>,Sum)... succeeded. facIter(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 #isZero(x1) weight: 0 minus(x1,x2) weight: 0 #plus(x1,x2) weight: 0 false() weight: 0 #p(x1) weight: 0 true() weight: 0 p(x1) weight: 0 #times(x1,x2) weight: 0 0() weight: 0 if(x1,x2,x3,x4) weight: 0 times(x1,x2) weight: 0 #minus(x1,x2) weight: x2 plus(x1,x2) weight: 0 #if(x1,x2,x3,x4) weight: 0 factorial(x1) weight: 0 isZero(x1) weight: 0 #factorial(x1) weight: 0 #facIter(x1,x2) weight: 0 Usable rules: { } Removed DPs: #3 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #4 #8 } 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)... succeeded. facIter(x1,x2) weight: 0; 0 s(x1) weight: max{0, (/ 5 16) + x1_1}; (- (/ 3 16)) + x1_2 #isZero(x1) weight: 0; 0 minus(x1,x2) weight: max{0, (/ 1 4) + x2_2 + x1_1}; 0 #plus(x1,x2) weight: 0; 0 false() weight: (/ 1 4); (- (/ 1 16)) #p(x1) weight: 0; 0 true() weight: 0; (- (/ 1 16)) p(x1) weight: max{0, (- (/ 1 4)) + x1_1}; 0 #times(x1,x2) weight: 0; 0 0() weight: 0; (- (/ 3 16)) if(x1,x2,x3,x4) weight: 0; 0 times(x1,x2) weight: max{0, (/ 1 8) + x1_2}; (- (/ 1 16)) + x1_2 #minus(x1,x2) weight: 0; 0 plus(x1,x2) weight: max{0, (/ 3 8) + x1_2, (/ 5 16) + x1_1}; x1_2 #if(x1,x2,x3,x4) weight: max{0, (- (/ 3 16)) + x1_1, (- (/ 1 16)) + x2_1}; x1_2 factorial(x1) weight: 0; 0 isZero(x1) weight: max{0, (- (/ 1 16)) + x1_1}; (- (/ 1 16)) #factorial(x1) weight: 0; 0 #facIter(x1,x2) weight: max{0, (- (/ 1 8)) + x1_2, (- (/ 1 8)) + x1_1, (- (/ 1 8)) + x2_2}; (- (/ 1 16)) Usable rules: { 5..11 } Removed DPs: #8 Number of SCCs: 0, DPs: 0, edges: 0 YES