YES TRS: { app(app(mapt(), f), app(leaf(), x)) -> app(leaf(), app(f, x)), app(app(mapt(), f), app(node(), xs)) -> app(node(), app(app(maptlist(), f), xs)), app(app(maptlist(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs)), app(app(maptlist(), f), nil()) -> nil()} DP: Strict: { app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(leaf(), x)) -> app#(leaf(), app(f, x)), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(mapt(), f), app(node(), xs)) -> app#(node(), app(app(maptlist(), f), xs)), app#(app(mapt(), f), app(node(), xs)) -> app#(maptlist(), f), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs)), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(mapt(), f), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(cons(), app(app(mapt(), f), x))} Weak: { app(app(mapt(), f), app(leaf(), x)) -> app(leaf(), app(f, x)), app(app(mapt(), f), app(node(), xs)) -> app(node(), app(app(maptlist(), f), xs)), app(app(maptlist(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs)), app(app(maptlist(), f), nil()) -> nil()} EDG: {(app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(cons(), app(app(mapt(), f), x))) (app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(mapt(), f)) (app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs))) (app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(mapt(), f), app(node(), xs)) -> app#(maptlist(), f)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(mapt(), f), app(node(), xs)) -> app#(node(), app(app(maptlist(), f), xs))) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(mapt(), f), app(leaf(), x)) -> app#(leaf(), app(f, x))) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs))) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(mapt(), f)) (app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(cons(), app(app(mapt(), f), x))) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(leaf(), x)) -> app#(leaf(), app(f, x))) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(node(), app(app(maptlist(), f), xs))) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(maptlist(), f)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs))) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(mapt(), f)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(cons(), app(app(mapt(), f), x)))} SCCS: Scc: { app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)} SCC: Strict: { app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(mapt(), f), x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)} Weak: { app(app(mapt(), f), app(leaf(), x)) -> app(leaf(), app(f, x)), app(app(mapt(), f), app(node(), xs)) -> app(node(), app(app(maptlist(), f), xs)), app(app(maptlist(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs)), app(app(maptlist(), f), nil()) -> nil()} SPSC: Simple Projection: pi(app#) = 1 Strict: { app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)} EDG: {(app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)) (app#(app(mapt(), f), app(node(), xs)) -> app#(app(maptlist(), f), xs), app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs))} SCCS: Scc: {app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)} Scc: {app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x)} SCC: Strict: {app#(app(maptlist(), f), app(app(cons(), x), xs)) -> app#(app(maptlist(), f), xs)} Weak: { app(app(mapt(), f), app(leaf(), x)) -> app(leaf(), app(f, x)), app(app(mapt(), f), app(node(), xs)) -> app(node(), app(app(maptlist(), f), xs)), app(app(maptlist(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs)), app(app(maptlist(), f), nil()) -> nil()} SPSC: Simple Projection: pi(app#) = 1 Strict: {} Qed SCC: Strict: {app#(app(mapt(), f), app(leaf(), x)) -> app#(f, x)} Weak: { app(app(mapt(), f), app(leaf(), x)) -> app(leaf(), app(f, x)), app(app(mapt(), f), app(node(), xs)) -> app(node(), app(app(maptlist(), f), xs)), app(app(maptlist(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(app(mapt(), f), x)), app(app(maptlist(), f), xs)), app(app(maptlist(), f), nil()) -> nil()} SPSC: Simple Projection: pi(app#) = 0 Strict: {} Qed