YES Problem: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Proof: DP Processor: DPs: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(le(),x) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(maxlist(),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(le(),x) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(if(),app(app(le(),x),y)) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app#(height(),app(app(node(),x),xs)) -> app#(map(),height()) app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) app#(height(),app(app(node(),x),xs)) -> app#(maxlist(),0()) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) app#(height(),app(app(node(),x),xs)) -> app#(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) EDG Processor: DPs: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(le(),x) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(maxlist(),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(le(),x) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(if(),app(app(le(),x),y)) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app#(height(),app(app(node(),x),xs)) -> app#(map(),height()) app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) app#(height(),app(app(node(),x),xs)) -> app#(maxlist(),0()) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) app#(height(),app(app(node(),x),xs)) -> app#(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) graph: app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(maxlist(),y) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(le(),x) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(if(),app(app(le(),x),y)) app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(maxlist(),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(le(),x) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(if(),app(app(le(),x),y)) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) -> app#(app(le(),app(s(),x)),app(s(),y)) -> app#(le(),x) app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) -> app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) -> app#(app(le(),app(s(),x)),app(s(),y)) -> app#(le(),x) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) -> app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(le(),app(s(),x)),app(s(),y)) -> app#(le(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(maxlist(),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(le(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(le(),x),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(if(),app(app(le(),x),y)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(height(),app(app(node(),x),xs)) -> app#(map(),height()) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(height(),app(app(node(),x),xs)) -> app#(maxlist(),0()) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(height(),app(app(node(),x),xs)) -> app#(app(maxlist(),0()),app(app(map(),height()),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(height(),app(app(node(),x),xs)) -> app#(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) SCC Processor: #sccs: 3 #rules: 5 #arcs: 41/289 DPs: app#(height(),app(app(node(),x),xs)) -> app#(app(map(),height()),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Qed DPs: app#(app(maxlist(),x),app(app(cons(),y),ys)) -> app#(app(maxlist(),y),ys) TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Qed DPs: app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(map(),f),nil()) -> nil() app(app(map(),f),app(app(cons(),x),xs)) -> app(app(cons(),app(f,x)),app(app(map(),f),xs)) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(maxlist(),x),app(app(cons(),y),ys)) -> app(app(if(),app(app(le(),x),y)),app(app(maxlist(),y),ys)) app(app(maxlist(),x),nil()) -> x app(height(),app(app(node(),x),xs)) -> app(s(),app(app(maxlist(),0()),app(app(map(),height()),xs))) Qed