Input TRS: 1: ge(x,0()) -> true() 2: ge(0(),s(y)) -> false() 3: ge(s(x),s(y)) -> ge(x,y) 4: rev(x) -> if(x,eq(0(),length(x)),nil(),0(),length(x)) 5: if(x,true(),z,c,l) -> z 6: if(x,false(),z,c,l) -> help(s(c),l,x,z) 7: help(c,l,cons(x,y),z) -> if(append(y,cons(x,nil())),ge(c,l),cons(x,z),c,l) 8: append(nil(),y) -> y 9: append(cons(x,y),z) -> cons(x,append(y,z)) 10: length(nil()) -> 0() 11: length(cons(x,y)) -> s(length(y)) Number of strict rules: 11 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #if(x,false(),z,c,l) -> #help(s(c),l,x,z) #2: #append(cons(x,y),z) -> #append(y,z) #3: #length(cons(x,y)) -> #length(y) #4: #help(c,l,cons(x,y),z) -> #if(append(y,cons(x,nil())),ge(c,l),cons(x,z),c,l) #5: #help(c,l,cons(x,y),z) -> #append(y,cons(x,nil())) #6: #help(c,l,cons(x,y),z) -> #ge(c,l) #7: #ge(s(x),s(y)) -> #ge(x,y) #8: #rev(x) -> #if(x,eq(0(),length(x)),nil(),0(),length(x)) #9: #rev(x) -> #length(x) #10: #rev(x) -> #length(x) Number of SCCs: 4, DPs: 5, edges: 5 SCC { #3 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #rev(x1) weight: 0 s(x1) weight: 0 #append(x1,x2) weight: 0 #help(x1,x2,x3,x4) weight: 0 eq(x1,x2) weight: 0 false() weight: 0 #ge(x1,x2) weight: 0 true() weight: 0 append(x1,x2) weight: 0 0() weight: 0 if(x1,x2,x3,x4,x5) weight: 0 ge(x1,x2) weight: 0 nil() weight: 0 rev(x1) weight: 0 cons(x1,x2) weight: (/ 1 2) + x2 #if(x1,x2,x3,x4,x5) weight: 0 help(x1,x2,x3,x4) weight: 0 length(x1) weight: 0 #length(x1) weight: x1 Usable rules: { } Removed DPs: #3 Number of SCCs: 3, DPs: 4, edges: 4 SCC { #2 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #rev(x1) weight: 0 s(x1) weight: 0 #append(x1,x2) weight: x1 #help(x1,x2,x3,x4) weight: 0 eq(x1,x2) weight: 0 false() weight: 0 #ge(x1,x2) weight: 0 true() weight: 0 append(x1,x2) weight: 0 0() weight: 0 if(x1,x2,x3,x4,x5) weight: 0 ge(x1,x2) weight: 0 nil() weight: 0 rev(x1) weight: 0 cons(x1,x2) weight: (/ 1 2) + x2 #if(x1,x2,x3,x4,x5) weight: 0 help(x1,x2,x3,x4) weight: 0 length(x1) weight: 0 #length(x1) weight: 0 Usable rules: { } Removed DPs: #2 Number of SCCs: 2, DPs: 3, edges: 3 SCC { #7 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #rev(x1) weight: 0 s(x1) weight: (/ 1 2) + x1 #append(x1,x2) weight: 0 #help(x1,x2,x3,x4) weight: 0 eq(x1,x2) weight: 0 false() weight: 0 #ge(x1,x2) weight: x2 true() weight: 0 append(x1,x2) weight: 0 0() weight: 0 if(x1,x2,x3,x4,x5) weight: 0 ge(x1,x2) weight: 0 nil() weight: 0 rev(x1) weight: 0 cons(x1,x2) weight: (/ 1 2) #if(x1,x2,x3,x4,x5) weight: 0 help(x1,x2,x3,x4) weight: 0 length(x1) weight: 0 #length(x1) weight: 0 Usable rules: { } Removed DPs: #7 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #1 #4 } 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