YES TRS: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} DP: Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(cons(), x), app(app(filter(), fun), xs)), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(cons(), x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(filter(), fun), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(filter(), fun), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(cons(), app(fun, x)), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(fun, x)), fun), x), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(fun, x)), fun), x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(filter2(), app(fun, x)), fun), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(filter2(), app(fun, x)), app#(f(), app(s(), x)) -> app#(f(), x), app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y), app#(h(), app(app(cons(), x), y)) -> app#(g(), app(app(cons(), x), y)), app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y)))} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} EDG: {(app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y))), app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y)))) (app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y))), app#(h(), app(app(cons(), x), y)) -> app#(g(), app(app(cons(), x), y))) (app#(f(), app(s(), x)) -> app#(f(), x), app#(f(), app(s(), x)) -> app#(f(), x)) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(filter2(), app(fun, x))) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(filter2(), app(fun, x)), fun)) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(fun, x)), fun), x)) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(fun, x)), fun), x), xs)) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y)))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(h(), app(app(cons(), x), y)) -> app#(g(), app(app(cons(), x), y))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(f(), app(s(), x)) -> app#(f(), x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(filter2(), app(fun, x))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(filter2(), app(fun, x)), fun)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(fun, x)), fun), x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(fun, x)), fun), x), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(cons(), app(fun, x))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(cons(), app(fun, x)), app(app(map(), fun), xs))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(filter(), fun)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(filter(), fun)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(cons(), x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(cons(), x), app(app(filter(), fun), xs))) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y)))) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(h(), app(app(cons(), x), y)) -> app#(g(), app(app(cons(), x), y))) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(f(), app(s(), x)) -> app#(f(), x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(filter2(), app(fun, x))) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(filter2(), app(fun, x)), fun)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(fun, x)), fun), x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(fun, x)), fun), x), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(cons(), app(fun, x))) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(cons(), app(fun, x)), app(app(map(), fun), xs))) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(filter(), fun)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(filter(), fun)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(cons(), x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(cons(), x), app(app(filter(), fun), xs))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(cons(), app(fun, x)), app(app(map(), fun), xs))) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(cons(), app(fun, x))) (app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(fun, x)), fun), x), xs)) (app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(fun, x)), fun), x)) (app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(app(filter2(), app(fun, x)), fun)) (app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(filter2(), app(fun, x))) (app#(h(), app(app(cons(), x), y)) -> app#(g(), app(app(cons(), x), y)), app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y)) (app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y), app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y))} SCCS: Scc: {app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y)))} Scc: {app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y)} Scc: {app#(f(), app(s(), x)) -> app#(f(), x)} Scc: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} SCC: Strict: {app#(h(), app(app(cons(), x), y)) -> app#(h(), app(g(), app(app(cons(), x), y)))} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} POLY: Argument Filtering: pi(false) = [], pi(true) = [], pi(filter2) = [], pi(filter) = [], pi(map) = [], pi(nil) = [], pi(h) = [], pi(0) = [], pi(cons) = [], pi(g) = [], pi(s) = [], pi(f) = [], pi(app#) = 1, pi(app) = 0 Usable Rules: {} Interpretation: [cons] = 1, [g] = 0 Strict: {} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} Qed SCC: Strict: {app#(g(), app(app(cons(), 0()), y)) -> app#(g(), y)} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} SPSC: Simple Projection: pi(app#) = 1 Strict: {} Qed SCC: Strict: {app#(f(), app(s(), x)) -> app#(f(), x)} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} SPSC: Simple Projection: pi(app#) = 1 Strict: {} Qed SCC: Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(app(map(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} SPSC: Simple Projection: pi(app#) = 1 Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} EDG: {(app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x))} SCCS: Scc: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} SCC: Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(map(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} SPSC: Simple Projection: pi(app#) = 1 Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} EDG: {(app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs)) (app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)) (app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x))} SCCS: Scc: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} SCC: Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(filter(), fun), app(app(cons(), x), xs)) -> app#(fun, x)} Weak: { app(app(app(app(filter2(), true()), fun), x), xs) -> app(app(cons(), x), app(app(filter(), fun), xs)), app(app(app(app(filter2(), false()), fun), x), xs) -> app(app(filter(), fun), xs), app(app(map(), fun), app(app(cons(), x), xs)) -> app(app(cons(), app(fun, x)), app(app(map(), fun), xs)), app(app(map(), fun), nil()) -> nil(), app(app(filter(), fun), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(fun, x)), fun), x), xs), app(app(filter(), fun), nil()) -> nil(), app(f(), app(s(), x)) -> app(f(), x), app(g(), app(app(cons(), app(s(), x)), y)) -> app(s(), x), app(g(), app(app(cons(), 0()), y)) -> app(g(), y), app(h(), app(app(cons(), x), y)) -> app(h(), app(g(), app(app(cons(), x), y)))} SPSC: Simple Projection: pi(app#) = 1 Strict: { app#(app(app(app(filter2(), true()), fun), x), xs) -> app#(app(filter(), fun), xs), app#(app(app(app(filter2(), false()), fun), x), xs) -> app#(app(filter(), fun), xs)} EDG: {} SCCS: Qed