Input TRS: 1: +(x,0()) -> x 2: +(x,s(y)) -> s(+(x,y)) 3: *(x,0()) -> 0() 4: *(x,s(y)) -> +(*(x,y),x) 5: ge(x,0()) -> true() 6: ge(0(),s(y)) -> false() 7: ge(s(x),s(y)) -> ge(x,y) 8: -(x,0()) -> x 9: -(s(x),s(y)) -> -(x,y) 10: fact(x) -> iffact(x,ge(x,s(s(0())))) 11: iffact(x,true()) -> *(x,fact(-(x,s(0())))) 12: iffact(x,false()) -> s(0()) Number of strict rules: 12 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #+(x,s(y)) -> #+(x,y) #2: #-(s(x),s(y)) -> #-(x,y) #3: #iffact(x,true()) -> #*(x,fact(-(x,s(0())))) #4: #iffact(x,true()) -> #fact(-(x,s(0()))) #5: #iffact(x,true()) -> #-(x,s(0())) #6: #ge(s(x),s(y)) -> #ge(x,y) #7: #fact(x) -> #iffact(x,ge(x,s(s(0())))) #8: #fact(x) -> #ge(x,s(s(0()))) #9: #*(x,s(y)) -> #+(*(x,y),x) #10: #*(x,s(y)) -> #*(x,y) Number of SCCs: 5, DPs: 6, edges: 6 SCC { #1 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) + x1 false() weight: 0 iffact(x1,x2) weight: 0 #ge(x1,x2) weight: 0 #*(x1,x2) weight: 0 #fact(x1) weight: 0 true() weight: 0 0() weight: 0 ge(x1,x2) weight: 0 #iffact(x1,x2) weight: 0 fact(x1) weight: 0 -(x1,x2) weight: 0 #-(x1,x2) weight: 0 +(x1,x2) weight: 0 #+(x1,x2) weight: x2 *(x1,x2) weight: 0 Usable rules: { } Removed DPs: #1 Number of SCCs: 4, DPs: 5, edges: 5 SCC { #10 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) + x1 false() weight: 0 iffact(x1,x2) weight: 0 #ge(x1,x2) weight: 0 #*(x1,x2) weight: x2 #fact(x1) weight: 0 true() weight: 0 0() weight: 0 ge(x1,x2) weight: 0 #iffact(x1,x2) weight: 0 fact(x1) weight: 0 -(x1,x2) weight: 0 #-(x1,x2) weight: 0 +(x1,x2) weight: 0 #+(x1,x2) weight: 0 *(x1,x2) weight: 0 Usable rules: { } Removed DPs: #10 Number of SCCs: 3, DPs: 4, edges: 4 SCC { #2 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) + x1 false() weight: 0 iffact(x1,x2) weight: 0 #ge(x1,x2) weight: 0 #*(x1,x2) weight: 0 #fact(x1) weight: 0 true() weight: 0 0() weight: 0 ge(x1,x2) weight: 0 #iffact(x1,x2) weight: 0 fact(x1) weight: 0 -(x1,x2) weight: 0 #-(x1,x2) weight: x2 +(x1,x2) weight: 0 #+(x1,x2) weight: 0 *(x1,x2) weight: 0 Usable rules: { } Removed DPs: #2 Number of SCCs: 2, DPs: 3, edges: 3 SCC { #6 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) + x1 false() weight: 0 iffact(x1,x2) weight: 0 #ge(x1,x2) weight: x2 #*(x1,x2) weight: 0 #fact(x1) weight: 0 true() weight: 0 0() weight: 0 ge(x1,x2) weight: 0 #iffact(x1,x2) weight: 0 fact(x1) weight: 0 -(x1,x2) weight: 0 #-(x1,x2) weight: 0 +(x1,x2) weight: 0 #+(x1,x2) weight: 0 *(x1,x2) weight: 0 Usable rules: { } Removed DPs: #6 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #4 #7 } 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. s(x1) weight: max{0, (/ 3 8) + x1_1}; (- (/ 3 8)) false() weight: (/ 1 8); (- (/ 1 8)) iffact(x1,x2) weight: 0; 0 #ge(x1,x2) weight: 0; 0 #*(x1,x2) weight: 0; 0 #fact(x1) weight: max{0, (/ 3 8) + x1_1}; 0 true() weight: (/ 3 8); (- (/ 3 8)) 0() weight: (/ 1 8); (- (/ 1 8)) ge(x1,x2) weight: max{0, (/ 1 2) + x2_2 + x1_1}; (- (/ 1 8)) #iffact(x1,x2) weight: max{0, (/ 1 8) + x1_2, (/ 1 4) + x1_1, (/ 1 8) + x2_1}; 0 fact(x1) weight: 0; 0 -(x1,x2) weight: max{0, (/ 1 4) + x2_2 + x1_1}; 0 #-(x1,x2) weight: 0; 0 +(x1,x2) weight: 0; 0 #+(x1,x2) weight: 0; 0 *(x1,x2) weight: 0; 0 Usable rules: { 5..9 } Removed DPs: #7 Number of SCCs: 0, DPs: 0, edges: 0 YES