MAYBE TRS: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} DP: Strict: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(cons(), x), app(app(filter(), f), xs)), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(cons(), x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(filter(), f), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(filter(), f), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(rev1(), y), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(cons(), x), app(app(rev2(), y), l)), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(cons(), x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev2(), y), 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#(app(map(), f), xs), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(cons(), 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(app(filter2(), app(f, x)), f), x), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(f, x)), f), x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter2(), app(f, x)), f), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(filter2(), app(f, x)), app#(rev(), app(app(cons(), x), l)) -> app#(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l)), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev1(), x), l), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l), app#(rev(), app(app(cons(), x), l)) -> app#(cons(), app(app(rev1(), x), l)), app#(rev(), app(app(cons(), x), l)) -> app#(rev1(), x), app#(rev(), app(app(cons(), x), l)) -> app#(rev2(), x)} Weak: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} EDG: { (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(rev2(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(rev1(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(cons(), app(app(rev1(), x), l))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev1(), x), l)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(filter2(), 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(filter2(), app(f, x)), f)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(f, x)), 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(app(filter2(), app(f, x)), f), x), 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(filter(), 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(filter(), 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(filter(), 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(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev2(), y)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(cons(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l)))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(cons(), x), app(app(rev2(), y), l))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(rev1(), y)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(filter(), f)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(filter(), f)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(cons(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(cons(), x), app(app(filter(), f), xs))) (app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(rev1(), y)) (app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l)) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev1(), x), l), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(rev1(), y)) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev1(), x), l), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l)) (app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(filter2(), app(f, x))) (app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter2(), app(f, x)), f)) (app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(f, x)), f), x)) (app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(f, x)), f), x), xs)) (app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), 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#(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#(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#(cons(), app(f, x))) (app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(f, x)), f), x), xs)) (app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(f, x)), f), x)) (app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter2(), app(f, x)), f)) (app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(filter2(), app(f, x))) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(cons(), x), app(app(rev2(), y), l))) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l)) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l)))) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(cons(), x)) (app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev2(), y)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(cons(), x), app(app(rev2(), y), l))) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l)))) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(cons(), x)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev2(), y)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev1(), x), l)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(cons(), app(app(rev1(), x), l))) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(rev1(), x)) (app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(rev2(), x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(cons(), x), app(app(filter(), f), xs))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(cons(), x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(filter(), f)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(filter(), f)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(rev1(), y)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(cons(), x), app(app(rev2(), y), l))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l)))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(cons(), x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev2(), y)) (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#(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#(cons(), app(f, x))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(f, x)), f), x), xs)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(filter2(), app(f, x)), f), x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(filter2(), app(f, x)), f)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(filter2(), app(f, x))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev1(), x), l)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(cons(), app(app(rev1(), x), l))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(rev1(), x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(rev2(), x)) } SCCS: Scc: {app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l)} Scc: {app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l)} Scc: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)} SCC: Strict: {app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(app(rev2(), y), l), app#(app(rev2(), x), app(app(cons(), y), l)) -> app#(rev(), app(app(cons(), x), app(app(rev2(), y), l))), app#(rev(), app(app(cons(), x), l)) -> app#(app(rev2(), x), l)} Weak: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} Fail SCC: Strict: {app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l)} Weak: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} SPSC: Simple Projection: pi(app#) = 1 Strict: {} Qed SCC: Strict: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)} Weak: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} SPSC: Simple Projection: pi(app#) = 1 Strict: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)} EDG: {(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(map(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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(filter(), f), app(app(cons(), x), xs)) -> app#(f, x))} SCCS: Scc: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)} SCC: Strict: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x)} Weak: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} SPSC: Simple Projection: pi(app#) = 1 Strict: { app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs), app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x)} EDG: {(app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), 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))} SCCS: Scc: {app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x)} SCC: Strict: {app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x)} Weak: { app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)), app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs), app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l), app(app(rev1(), app(s(), x)), nil()) -> app(s(), x), app(app(rev1(), 0()), nil()) -> 0(), app(app(rev2(), x), nil()) -> nil(), app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))), 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(filter(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(rev(), nil()) -> nil(), app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))} SPSC: Simple Projection: pi(app#) = 0 Strict: {} Qed