Input TRS: 1: app(x,y) -> helpa(0(),plus(length(x),length(y)),x,y) 2: plus(x,0()) -> x 3: plus(x,s(y)) -> s(plus(x,y)) 4: length(nil()) -> 0() 5: length(cons(x,y)) -> s(length(y)) 6: helpa(c,l,ys,zs) -> if(ge(c,l),c,l,ys,zs) 7: ge(x,0()) -> true() 8: ge(0(),s(x)) -> false() 9: ge(s(x),s(y)) -> ge(x,y) 10: if(true(),c,l,ys,zs) -> nil() 11: if(false(),c,l,ys,zs) -> helpb(c,l,greater(ys,zs),smaller(ys,zs)) 12: greater(ys,zs) -> helpc(ge(length(ys),length(zs)),ys,zs) 13: smaller(ys,zs) -> helpc(ge(length(ys),length(zs)),zs,ys) 14: helpc(true(),ys,zs) -> ys 15: helpc(false(),ys,zs) -> zs 16: helpb(c,l,cons(y,ys),zs) -> cons(y,helpa(s(c),l,ys,zs)) Number of strict rules: 16 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #helpa(c,l,ys,zs) -> #if(ge(c,l),c,l,ys,zs) #2: #helpa(c,l,ys,zs) -> #ge(c,l) #3: #smaller(ys,zs) -> #helpc(ge(length(ys),length(zs)),zs,ys) #4: #smaller(ys,zs) -> #ge(length(ys),length(zs)) #5: #smaller(ys,zs) -> #length(ys) #6: #smaller(ys,zs) -> #length(zs) #7: #ge(s(x),s(y)) -> #ge(x,y) #8: #if(false(),c,l,ys,zs) -> #helpb(c,l,greater(ys,zs),smaller(ys,zs)) #9: #if(false(),c,l,ys,zs) -> #greater(ys,zs) #10: #if(false(),c,l,ys,zs) -> #smaller(ys,zs) #11: #greater(ys,zs) -> #helpc(ge(length(ys),length(zs)),ys,zs) #12: #greater(ys,zs) -> #ge(length(ys),length(zs)) #13: #greater(ys,zs) -> #length(ys) #14: #greater(ys,zs) -> #length(zs) #15: #length(cons(x,y)) -> #length(y) #16: #helpb(c,l,cons(y,ys),zs) -> #helpa(s(c),l,ys,zs) #17: #plus(x,s(y)) -> #plus(x,y) #18: #app(x,y) -> #helpa(0(),plus(length(x),length(y)),x,y) #19: #app(x,y) -> #plus(length(x),length(y)) #20: #app(x,y) -> #length(x) #21: #app(x,y) -> #length(y) Number of SCCs: 4, DPs: 6, edges: 6 SCC { #15 } Removing DPs: Order(PosReal,>,Sum)... succeeded. smaller(x1,x2) weight: 0 s(x1) weight: 0 greater(x1,x2) weight: 0 #plus(x1,x2) weight: 0 #helpa(x1,x2,x3,x4) weight: 0 false() weight: 0 #ge(x1,x2) weight: 0 helpb(x1,x2,x3,x4) weight: 0 #smaller(x1,x2) weight: 0 true() weight: 0 0() weight: 0 if(x1,x2,x3,x4,x5) weight: 0 ge(x1,x2) weight: 0 #helpc(x1,x2,x3) weight: 0 nil() weight: 0 helpc(x1,x2,x3) weight: 0 #app(x1,x2) weight: 0 plus(x1,x2) weight: 0 #greater(x1,x2) weight: 0 cons(x1,x2) weight: (/ 1 2) + x2 #if(x1,x2,x3,x4,x5) weight: 0 helpa(x1,x2,x3,x4) weight: 0 length(x1) weight: 0 #length(x1) weight: x1 #helpb(x1,x2,x3,x4) weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #15 Number of SCCs: 3, DPs: 5, edges: 5 SCC { #17 } Removing DPs: Order(PosReal,>,Sum)... succeeded. smaller(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 greater(x1,x2) weight: 0 #plus(x1,x2) weight: x2 #helpa(x1,x2,x3,x4) weight: 0 false() weight: 0 #ge(x1,x2) weight: 0 helpb(x1,x2,x3,x4) weight: 0 #smaller(x1,x2) weight: 0 true() weight: 0 0() weight: 0 if(x1,x2,x3,x4,x5) weight: 0 ge(x1,x2) weight: 0 #helpc(x1,x2,x3) weight: 0 nil() weight: 0 helpc(x1,x2,x3) weight: 0 #app(x1,x2) weight: 0 plus(x1,x2) weight: 0 #greater(x1,x2) weight: 0 cons(x1,x2) weight: (/ 1 2) #if(x1,x2,x3,x4,x5) weight: 0 helpa(x1,x2,x3,x4) weight: 0 length(x1) weight: 0 #length(x1) weight: 0 #helpb(x1,x2,x3,x4) weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #17 Number of SCCs: 2, DPs: 4, edges: 4 SCC { #7 } Removing DPs: Order(PosReal,>,Sum)... succeeded. smaller(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 greater(x1,x2) weight: 0 #plus(x1,x2) weight: 0 #helpa(x1,x2,x3,x4) weight: 0 false() weight: 0 #ge(x1,x2) weight: x2 helpb(x1,x2,x3,x4) weight: 0 #smaller(x1,x2) weight: 0 true() weight: 0 0() weight: 0 if(x1,x2,x3,x4,x5) weight: 0 ge(x1,x2) weight: 0 #helpc(x1,x2,x3) weight: 0 nil() weight: 0 helpc(x1,x2,x3) weight: 0 #app(x1,x2) weight: 0 plus(x1,x2) weight: 0 #greater(x1,x2) weight: 0 cons(x1,x2) weight: (/ 1 2) #if(x1,x2,x3,x4,x5) weight: 0 helpa(x1,x2,x3,x4) weight: 0 length(x1) weight: 0 #length(x1) weight: 0 #helpb(x1,x2,x3,x4) weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #7 Number of SCCs: 1, DPs: 3, edges: 3 SCC { #1 #8 #16 } 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