YES Input TRS: 1: app(app(map(),f),nil()) -> nil() 2: app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) 3: app(app(treemap(),f),app(app(node(),x),xs)) -> app(app(node(),app(f,x)),app(app(map(),app(treemap(),f)),xs)) Number of strict rules: 3 Direct POLO(bPol) ... failed. Uncurrying app 1: app^2_map(f,nil()) -> nil() 2: app^2_map(f,app^2_cons(x,xs)) -> app^2_cons(app(f,x),app^2_map(f,xs)) 3: app^2_treemap(f,app^2_node(x,xs)) -> app^2_node(app(f,x),app^2_map(app^1_treemap(f),xs)) 4: app(treemap(),_1) ->= app^1_treemap(_1) 5: app(app^1_treemap(_1),_2) ->= app^2_treemap(_1,_2) 6: app(cons(),_1) ->= app^1_cons(_1) 7: app(app^1_cons(_1),_2) ->= app^2_cons(_1,_2) 8: app(map(),_1) ->= app^1_map(_1) 9: app(app^1_map(_1),_2) ->= app^2_map(_1,_2) 10: app(node(),_1) ->= app^1_node(_1) 11: app(app^1_node(_1),_2) ->= app^2_node(_1,_2) Number of strict rules: 3 Direct POLO(bPol) ... failed. Dependency Pairs: #1: #app^2_map(f,app^2_cons(x,xs)) -> #app(f,x) #2: #app^2_map(f,app^2_cons(x,xs)) -> #app^2_map(f,xs) #3: #app(app^1_map(_1),_2) ->? #app^2_map(_1,_2) #4: #app(app^1_treemap(_1),_2) ->? #app^2_treemap(_1,_2) #5: #app^2_treemap(f,app^2_node(x,xs)) -> #app(f,x) #6: #app^2_treemap(f,app^2_node(x,xs)) -> #app^2_map(app^1_treemap(f),xs) Number of SCCs: 1, DPs: 6 SCC { #1..6 } POLO(Sum)... succeeded. app^1_cons w: 0 #app^2_map w: x2 app^2_node w: x1 + x2 + 2 nil w: 0 app^1_treemap w: 1 app^2_treemap w: 0 #app w: x2 + 1 map w: 0 treemap w: 0 cons w: 0 #app^2_treemap w: x2 app^1_map w: 1 app^2_cons w: x1 + x2 + 40 node w: 0 app^2_map w: 0 app w: 0 app^1_node w: 0 USABLE RULES: { } Removed DPs: #1..6 Number of SCCs: 0, DPs: 0