Input TRS: 1: app(f(),app(app(cons(),nil()),y)) -> y 2: app(f(),app(app(cons(),app(f(),app(app(cons(),nil()),y))),z)) -> app(app(app(copy(),n()),y),z) 3: app(app(app(copy(),0()),y),z) -> app(f(),z) 4: app(app(app(copy(),app(s(),x)),y),z) -> app(app(app(copy(),x),y),app(app(cons(),app(f(),y)),z)) 5: app(app(map(),fun),nil()) -> nil() 6: app(app(map(),fun),app(app(cons(),x),xs)) -> app(app(cons(),app(fun,x)),app(app(map(),fun),xs)) 7: app(app(filter(),fun),nil()) -> nil() 8: app(app(filter(),fun),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(fun,x)),fun),x),xs) 9: app(app(app(app(filter2(),true()),fun),x),xs) -> app(app(cons(),x),app(app(filter(),fun),xs)) 10: app(app(app(app(filter2(),false()),fun),x),xs) -> app(app(filter(),fun),xs) Number of strict rules: 10 Direct Order(PosReal,>,Poly) ... failed. Freezing app 1: app❆1_f(app❆2_cons(nil(),y)) -> y 2: app❆1_f(app❆2_cons(app❆1_f(app❆2_cons(nil(),y)),z)) -> app❆3_copy(n(),y,z) 3: app❆3_copy(0(),y,z) -> app❆1_f(z) 4: app❆3_copy(app❆1_s(x),y,z) -> app❆3_copy(x,y,app❆2_cons(app❆1_f(y),z)) 5: app❆2_map(fun,nil()) -> nil() 6: app❆2_map(fun,app❆2_cons(x,xs)) -> app❆2_cons(app(fun,x),app❆2_map(fun,xs)) 7: app❆2_filter(fun,nil()) -> nil() 8: app❆2_filter(fun,app❆2_cons(x,xs)) -> app❆4_filter2(app(fun,x),fun,x,xs) 9: app❆4_filter2(true(),fun,x,xs) -> app❆2_cons(x,app❆2_filter(fun,xs)) 10: app❆4_filter2(false(),fun,x,xs) -> app❆2_filter(fun,xs) 11: app(cons(),_1) ->= app❆1_cons(_1) 12: app(app❆1_cons(_1),_2) ->= app❆2_cons(_1,_2) 13: app(s(),_1) ->= app❆1_s(_1) 14: app(filter(),_1) ->= app❆1_filter(_1) 15: app(app❆1_filter(_1),_2) ->= app❆2_filter(_1,_2) 16: app(map(),_1) ->= app❆1_map(_1) 17: app(app❆1_map(_1),_2) ->= app❆2_map(_1,_2) 18: app(f(),_1) ->= app❆1_f(_1) 19: app(filter2(),_1) ->= app❆1_filter2(_1) 20: app(app❆1_filter2(_1),_2) ->= app❆2_filter2(_1,_2) 21: app(app❆2_filter2(_1,_2),_3) ->= app❆3_filter2(_1,_2,_3) 22: app(app❆3_filter2(_1,_2,_3),_4) ->= app❆4_filter2(_1,_2,_3,_4) 23: app(copy(),_1) ->= app❆1_copy(_1) 24: app(app❆1_copy(_1),_2) ->= app❆2_copy(_1,_2) 25: app(app❆2_copy(_1,_2),_3) ->= app❆3_copy(_1,_2,_3) Number of strict rules: 10 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #app❆1_f(app❆2_cons(app❆1_f(app❆2_cons(nil(),y)),z)) -> #app❆3_copy(n(),y,z) #2: #app❆2_map(fun,app❆2_cons(x,xs)) -> #app(fun,x) #3: #app❆2_map(fun,app❆2_cons(x,xs)) -> #app❆2_map(fun,xs) #4: #app❆4_filter2(true(),fun,x,xs) -> #app❆2_filter(fun,xs) #5: #app(app❆2_copy(_1,_2),_3) ->? #app❆3_copy(_1,_2,_3) #6: #app❆4_filter2(false(),fun,x,xs) -> #app❆2_filter(fun,xs) #7: #app(app❆3_filter2(_1,_2,_3),_4) ->? #app❆4_filter2(_1,_2,_3,_4) #8: #app(app❆1_map(_1),_2) ->? #app❆2_map(_1,_2) #9: #app❆3_copy(0(),y,z) -> #app❆1_f(z) #10: #app❆2_filter(fun,app❆2_cons(x,xs)) -> #app❆4_filter2(app(fun,x),fun,x,xs) #11: #app❆2_filter(fun,app❆2_cons(x,xs)) -> #app(fun,x) #12: #app(app❆1_filter(_1),_2) ->? #app❆2_filter(_1,_2) #13: #app❆3_copy(app❆1_s(x),y,z) -> #app❆3_copy(x,y,app❆2_cons(app❆1_f(y),z)) #14: #app❆3_copy(app❆1_s(x),y,z) -> #app❆1_f(y) #15: #app(f(),_1) ->? #app❆1_f(_1) Number of SCCs: 2, DPs: 10, edges: 21 SCC { #13 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #app❆2_map(x1,x2) weight: 0 s() weight: 0 app❆1_map(x1) weight: 0 n() weight: 0 app❆4_filter2(x1,x2,x3,x4) weight: 0 app❆2_map(x1,x2) weight: 0 false() weight: 0 true() weight: 0 f() weight: 0 filter2() weight: 0 app❆2_filter(x1,x2) weight: 0 app❆1_copy(x1) weight: 0 0() weight: 0 app❆1_f(x1) weight: (/ 1 4) nil() weight: 0 app❆1_filter(x1) weight: 0 #app(x1,x2) weight: 0 map() weight: 0 #app❆4_filter2(x1,x2,x3,x4) weight: 0 app❆2_filter2(x1,x2) weight: 0 #app❆2_filter(x1,x2) weight: 0 #app❆3_copy(x1,x2,x3) weight: x1 cons() weight: 0 app❆2_cons(x1,x2) weight: (/ 1 4) + x1 app❆3_copy(x1,x2,x3) weight: (/ 1 2) + x2 + x3 app❆2_copy(x1,x2) weight: 0 #app❆1_f(x1) weight: 0 filter() weight: 0 app❆1_s(x1) weight: (/ 1 4) + x1 app❆1_filter2(x1) weight: 0 app❆1_cons(x1) weight: 0 app❆3_filter2(x1,x2,x3) weight: 0 copy() weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #13 Number of SCCs: 1, DPs: 9, edges: 20 SCC { #2..4 #6..8 #10..12 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #app❆2_map(x1,x2) weight: x1 + x2 s() weight: 0 app❆1_map(x1) weight: (/ 3 4) + x1 n() weight: 0 app❆4_filter2(x1,x2,x3,x4) weight: 3 + x1 app❆2_map(x1,x2) weight: (/ 3 2) + x1 false() weight: 0 true() weight: 0 f() weight: 0 filter2() weight: 0 app❆2_filter(x1,x2) weight: (/ 7 4) + x2 app❆1_copy(x1) weight: (/ 3 4) 0() weight: 0 app❆1_f(x1) weight: (/ 5 2) nil() weight: 0 app❆1_filter(x1) weight: (/ 3 4) + x1 #app(x1,x2) weight: x1 + x2 map() weight: 0 #app❆4_filter2(x1,x2,x3,x4) weight: (/ 3 4) + x2 + x4 app❆2_filter2(x1,x2) weight: (/ 3 2) + x1 + x2 #app❆2_filter(x1,x2) weight: (/ 1 2) + x1 + x2 #app❆3_copy(x1,x2,x3) weight: 0 cons() weight: 0 app❆2_cons(x1,x2) weight: (/ 3 2) + x1 + x2 app❆3_copy(x1,x2,x3) weight: (/ 9 4) + x2 + x3 app❆2_copy(x1,x2) weight: (/ 3 2) + x1 #app❆1_f(x1) weight: 0 filter() weight: 0 app❆1_s(x1) weight: (/ 3 4) app❆1_filter2(x1) weight: (/ 3 4) app❆1_cons(x1) weight: (/ 3 4) app❆3_filter2(x1,x2,x3) weight: (/ 9 4) + x2 + x3 copy() weight: 0 app(x1,x2) weight: (/ 1 2) + x1 + x2 Usable rules: { } Removed DPs: #2..4 #6..8 #10..12 Number of SCCs: 0, DPs: 0, edges: 0 YES