YES TRS: { app(app(app(consif(), true()), x), ys) -> app(app(cons(), x), ys), app(app(app(consif(), false()), x), ys) -> ys, app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app(app(filter(), f), nil()) -> nil()} DP: Strict: { app#(app(app(consif(), true()), x), ys) -> app#(app(cons(), x), ys), app#(app(app(consif(), true()), x), ys) -> app#(cons(), x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(consif(), app(f, x)), x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(consif(), app(f, x))} Weak: { app(app(app(consif(), true()), x), ys) -> app(app(cons(), x), ys), app(app(app(consif(), false()), x), ys) -> ys, app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app(app(filter(), f), nil()) -> nil()} EDG: {(app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app#(app(app(consif(), true()), x), ys) -> app#(cons(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app#(app(app(consif(), true()), x), ys) -> app#(app(cons(), x), ys)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(consif(), app(f, x))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(consif(), app(f, x)), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(consif(), true()), x), ys) -> app#(app(cons(), x), ys)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(consif(), true()), x), ys) -> app#(cons(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(consif(), app(f, x)), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(consif(), app(f, x)))} SCCS: Scc: {app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)} SCC: Strict: {app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)} Weak: { app(app(app(consif(), true()), x), ys) -> app(app(cons(), x), ys), app(app(app(consif(), false()), x), ys) -> ys, app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app(app(filter(), f), nil()) -> nil()} SPSC: Simple Projection: pi(app#) = 0 Strict: {app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)} EDG: {(app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs))} SCCS: Scc: {app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)} SCC: Strict: {app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter(), f), xs)} Weak: { app(app(app(consif(), true()), x), ys) -> app(app(cons(), x), ys), app(app(app(consif(), false()), x), ys) -> ys, app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(consif(), app(f, x)), x), app(app(filter(), f), xs)), app(app(filter(), f), nil()) -> nil()} SPSC: Simple Projection: pi(app#) = 1 Strict: {} Qed