MAYBE Time: 0.168763 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: DP: { 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)} 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))} EDG: { (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(rev2(), x)) (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#(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#(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(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l))) (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#(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#(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(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#(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(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(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#(f, 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(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#(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#(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(cons(), x), app(app(rev2(), 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(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(app(app(filter2(), false()), 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(), true()), f), x), xs) -> app#(filter(), f)) (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#(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(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#(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(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(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#(cons(), x)) (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(), 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(), false()), f), x), xs) -> app#(filter(), f)) (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(rev1(), x), app(app(cons(), y), l)) -> app#(rev1(), y)) (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(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#(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#(cons(), 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(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#(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#(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#(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#(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#(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(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#(filter2(), app(f, x))) (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#(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(rev2(), x), l)) (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#(rev1(), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(rev(), app(app(cons(), x), l)) -> app#(rev2(), 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(), 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(), 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#(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(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#(filter2(), 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#(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)) } STATUS: arrows: 0.885204 SCCS (3): 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: {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 (5): 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))} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [app](x0, x1) = x0 + x1, [nil] = 1, [rev] = 0, [cons] = 1, [rev1] = 1, [rev2] = 1, [0] = 0, [s] = 0, [map] = 0, [filter] = 0, [filter2] = 0, [true] = 0, [false] = 0, [app#](x0, x1) = x0 Strict: app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x) 1 + 1x + 0f + 1xs >= 0 + 1x + 0f app#(app(map(), f), app(app(cons(), x), xs)) -> app#(app(map(), f), xs) 1 + 1x + 0f + 1xs >= 0 + 0f + 1xs app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x) 1 + 1x + 0f + 1xs >= 0 + 1x + 0f app#(app(app(app(filter2(), false()), f), x), xs) -> app#(app(filter(), f), xs) 0 + 0x + 0f + 1xs >= 0 + 0f + 1xs app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(filter(), f), xs) 0 + 0x + 0f + 1xs >= 0 + 0f + 1xs Weak: app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l)) 1 + 1x + 1l >= 3 + 2x + 2l app(rev(), nil()) -> nil() 1 >= 1 app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs) 1 + 1x + 1f + 1xs >= 0 + 2x + 2f + 1xs app(app(filter(), f), nil()) -> nil() 1 + 1f >= 1 app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)) 1 + 1x + 1f + 1xs >= 1 + 1x + 2f + 1xs app(app(map(), f), nil()) -> nil() 1 + 1f >= 1 app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))) 2 + 1x + 1l + 1y >= 2 + 1x + 1l + 1y app(app(rev2(), x), nil()) -> nil() 2 + 1x >= 1 app(app(rev1(), 0()), nil()) -> 0() 2 >= 0 app(app(rev1(), app(s(), x)), nil()) -> app(s(), x) 2 + 1x >= 0 + 1x app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l) 2 + 1x + 1l + 1y >= 1 + 1l + 1y app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs) 0 + 1x + 1f + 1xs >= 0 + 1f + 1xs app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)) 0 + 1x + 1f + 1xs >= 1 + 1x + 1f + 1xs SCCS (0): SCC (3): 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 (1): 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))} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [app](x0, x1) = x0 + 1, [nil] = 1, [rev] = 0, [cons] = 0, [rev1] = 0, [rev2] = 0, [0] = 1, [s] = 0, [map] = 0, [filter] = 0, [filter2] = 0, [true] = 1, [false] = 1, [app#](x0, x1) = x0 Strict: app#(app(rev1(), x), app(app(cons(), y), l)) -> app#(app(rev1(), y), l) 1 + 0x + 1l + 0y >= 0 + 1l + 0y Weak: app(rev(), app(app(cons(), x), l)) -> app(app(cons(), app(app(rev1(), x), l)), app(app(rev2(), x), l)) 2 + 0x + 1l >= 2 + 0x + 1l app(rev(), nil()) -> nil() 2 >= 1 app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs) 2 + 0x + 0f + 1xs >= 1 + 0x + 0f + 1xs app(app(filter(), f), nil()) -> nil() 2 + 0f >= 1 app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)) 2 + 0x + 0f + 1xs >= 2 + 0x + 0f + 1xs app(app(map(), f), nil()) -> nil() 2 + 0f >= 1 app(app(rev2(), x), app(app(cons(), y), l)) -> app(rev(), app(app(cons(), x), app(app(rev2(), y), l))) 2 + 0x + 1l + 0y >= 3 + 0x + 1l + 0y app(app(rev2(), x), nil()) -> nil() 2 + 0x >= 1 app(app(rev1(), 0()), nil()) -> 0() 2 >= 1 app(app(rev1(), app(s(), x)), nil()) -> app(s(), x) 2 + 0x >= 1 + 1x app(app(rev1(), x), app(app(cons(), y), l)) -> app(app(rev1(), y), l) 2 + 0x + 1l + 0y >= 1 + 1l + 0y app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs) 1 + 0x + 0f + 1xs >= 1 + 0f + 1xs app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)) 1 + 0x + 0f + 1xs >= 2 + 0x + 0f + 1xs Qed