Input TRS: 1: times(x,plus(y,1())) -> plus(times(x,plus(y,times(1(),0()))),x) 2: times(x,1()) -> x 3: times(x,0()) -> 0() 4: plus(s(x),s(y)) -> s(s(plus(if(gt(x,y),x,y),if(not(gt(x,y)),id(x),id(y))))) 5: plus(s(x),x) -> plus(if(gt(x,x),id(x),id(x)),s(x)) 6: plus(zero(),y) -> y 7: plus(id(x),s(y)) -> s(plus(x,if(gt(s(y),y),y,s(y)))) 8: id(x) -> x 9: if(true(),x,y) -> x 10: if(false(),x,y) -> y 11: not(x) -> if(x,false(),true()) 12: gt(s(x),zero()) -> true() 13: gt(zero(),y) -> false() 14: gt(s(x),s(y)) -> gt(x,y) Number of strict rules: 14 Direct Order(PosReal,>,Poly) ... failed. Freezing gt 1: times(x,plus(y,1())) -> plus(times(x,plus(y,times(1(),0()))),x) 2: times(x,1()) -> x 3: times(x,0()) -> 0() 4: plus(s(x),s(y)) -> s(s(plus(if(gt(x,y),x,y),if(not(gt(x,y)),id(x),id(y))))) 5: plus(s(x),x) -> plus(if(gt(x,x),id(x),id(x)),s(x)) 6: plus(zero(),y) -> y 7: plus(id(x),s(y)) -> s(plus(x,if(gt❆1_s(y,y),y,s(y)))) 8: id(x) -> x 9: if(true(),x,y) -> x 10: if(false(),x,y) -> y 11: not(x) -> if(x,false(),true()) 12: gt❆1_s(x,zero()) -> true() 13: gt❆1_zero(y) -> false() 14: gt❆1_s(x,s(y)) -> gt(x,y) 15: gt(zero(),_1) ->= gt❆1_zero(_1) 16: gt(s(_1),_2) ->= gt❆1_s(_1,_2) Number of strict rules: 14 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #not(x) -> #if(x,false(),true()) #2: #gt❆1_s(x,s(y)) -> #gt(x,y) #3: #plus(id(x),s(y)) -> #plus(x,if(gt❆1_s(y,y),y,s(y))) #4: #plus(id(x),s(y)) -> #if(gt❆1_s(y,y),y,s(y)) #5: #plus(id(x),s(y)) -> #gt❆1_s(y,y) #6: #plus(s(x),x) -> #plus(if(gt(x,x),id(x),id(x)),s(x)) #7: #plus(s(x),x) -> #if(gt(x,x),id(x),id(x)) #8: #plus(s(x),x) -> #gt(x,x) #9: #plus(s(x),x) -> #id(x) #10: #plus(s(x),x) -> #id(x) #11: #gt(s(_1),_2) ->? #gt❆1_s(_1,_2) #12: #times(x,plus(y,1())) -> #plus(times(x,plus(y,times(1(),0()))),x) #13: #times(x,plus(y,1())) -> #times(x,plus(y,times(1(),0()))) #14: #times(x,plus(y,1())) -> #plus(y,times(1(),0())) #15: #times(x,plus(y,1())) -> #times(1(),0()) #16: #gt(zero(),_1) ->? #gt❆1_zero(_1) #17: #plus(s(x),s(y)) -> #plus(if(gt(x,y),x,y),if(not(gt(x,y)),id(x),id(y))) #18: #plus(s(x),s(y)) -> #if(gt(x,y),x,y) #19: #plus(s(x),s(y)) -> #gt(x,y) #20: #plus(s(x),s(y)) -> #if(not(gt(x,y)),id(x),id(y)) #21: #plus(s(x),s(y)) -> #not(gt(x,y)) #22: #plus(s(x),s(y)) -> #gt(x,y) #23: #plus(s(x),s(y)) -> #id(x) #24: #plus(s(x),s(y)) -> #id(y) Number of SCCs: 3, DPs: 6, edges: 12 SCC { #13 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. zero() weight: 0 1() weight: (/ 1 8) s(x1) weight: 0 gt(x1,x2) weight: max{(/ 1 4) + x2, (/ 1 8) + x1} #plus(x1,x2) weight: 0 false() weight: (/ 3 8) #id(x1) weight: 0 true() weight: (/ 1 8) gt❆1_zero(x1) weight: (/ 1 4) #not(x1) weight: 0 #times(x1,x2) weight: max{0, x2} #gt❆1_zero(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: 0 times(x1,x2) weight: 0 #gt(x1,x2) weight: 0 #gt❆1_s(x1,x2) weight: 0 plus(x1,x2) weight: max{0, (/ 1 8) + x2} #if(x1,x2,x3) weight: 0 id(x1) weight: 0 gt❆1_s(x1,x2) weight: 0 not(x1) weight: x1 Usable rules: { 3..7 } Removed DPs: #13 Number of SCCs: 2, DPs: 5, edges: 11 SCC { #2 #11 } Removing DPs: Order(PosReal,>,Sum)... succeeded. zero() weight: 0 1() weight: 0 s(x1) weight: (/ 1 4) + x1 gt(x1,x2) weight: (/ 1 2) + x2 #plus(x1,x2) weight: 0 false() weight: 0 #id(x1) weight: 0 true() weight: 0 gt❆1_zero(x1) weight: (/ 5 8) #not(x1) weight: 0 #times(x1,x2) weight: 0 #gt❆1_zero(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: (/ 1 4) + x2 times(x1,x2) weight: 0 #gt(x1,x2) weight: (/ 1 8) + x2 #gt❆1_s(x1,x2) weight: x2 plus(x1,x2) weight: (/ 1 8) #if(x1,x2,x3) weight: 0 id(x1) weight: (/ 1 8) + x1 gt❆1_s(x1,x2) weight: (/ 1 8) + x2 not(x1) weight: (/ 1 8) Usable rules: { } Removed DPs: #2 #11 Number of SCCs: 1, DPs: 3, edges: 9 SCC { #3 #6 #17 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. zero() weight: 0 1() weight: (/ 1 16) s(x1) weight: (/ 5 16) + x1 gt(x1,x2) weight: max{(/ 1 8) + x2, (/ 1 16) + x1} #plus(x1,x2) weight: max{(/ 1 16) + x2, (/ 1 4) + x1} false() weight: (/ 3 16) #id(x1) weight: 0 true() weight: (/ 5 16) gt❆1_zero(x1) weight: (/ 1 8) #not(x1) weight: 0 #times(x1,x2) weight: 0 #gt❆1_zero(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: max{0, x3, (/ 1 16) + x2} times(x1,x2) weight: 0 #gt(x1,x2) weight: 0 #gt❆1_s(x1,x2) weight: 0 plus(x1,x2) weight: max{0, (/ 1 4) + x2} #if(x1,x2,x3) weight: 0 id(x1) weight: (/ 3 16) + x1 gt❆1_s(x1,x2) weight: 0 not(x1) weight: (/ 1 4) + x1 Usable rules: { 8..10 } Removed DPs: #6 #17 Number of SCCs: 1, DPs: 1, edges: 1 SCC { #3 } Removing DPs: Order(PosReal,>,Sum)... succeeded. zero() weight: 0 1() weight: 0 s(x1) weight: (/ 1 4) gt(x1,x2) weight: (/ 1 2) #plus(x1,x2) weight: x1 false() weight: 0 #id(x1) weight: 0 true() weight: 0 gt❆1_zero(x1) weight: (/ 5 8) #not(x1) weight: 0 #times(x1,x2) weight: 0 #gt❆1_zero(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: (/ 1 4) + x2 + x3 times(x1,x2) weight: 0 #gt(x1,x2) weight: (/ 1 8) #gt❆1_s(x1,x2) weight: 0 plus(x1,x2) weight: (/ 1 8) #if(x1,x2,x3) weight: 0 id(x1) weight: (/ 1 8) + x1 gt❆1_s(x1,x2) weight: (/ 1 8) + x2 not(x1) weight: (/ 1 8) Usable rules: { 9 10 } Removed DPs: #3 Number of SCCs: 0, DPs: 0, edges: 0 YES