MAYBE Time: 0.171074 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(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)), app(app(plus(), x), 0()) -> x, app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x), app(app(times(), x), 0()) -> 0(), app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)), app(app(map(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(app(filter(), f), nil()) -> nil()} 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(plus(), x), app(s(), y)) -> app#(app(plus(), x), y), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y)), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0())), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z)), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), app(s(), z)), 0()), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(times(), app(s(), z)), app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(s(), y)) -> app#(plus(), app(app(times(), x), y)), 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#(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))} 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(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)), app(app(plus(), x), 0()) -> x, app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x), app(app(times(), x), 0()) -> 0(), app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)), app(app(map(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(app(filter(), f), nil()) -> nil()} UR: { 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(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)), app(app(plus(), x), 0()) -> x, app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x), app(app(times(), x), 0()) -> 0(), app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)), app(app(map(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(app(filter(), f), nil()) -> nil(), a(w, v) -> w, a(w, v) -> v} EDG: { (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(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#(filter(), f)) (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(app(filter2(), app(f, x)), f), x), xs), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(filter(), f)) (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#(cons(), x)) (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(app(filter2(), app(f, x)), f), x), xs), app#(app(app(app(filter2(), true()), f), x), xs) -> app#(app(cons(), x), app(app(filter(), f), xs))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(s(), y)) -> app#(plus(), app(app(times(), x), y))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x)) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(times(), app(s(), z))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), app(s(), z)), 0())) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z)))) (app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0()))) (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(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#(f, x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(s(), y)) -> app#(plus(), app(app(times(), x), y))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x)) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(times(), app(s(), z))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), app(s(), z)), 0())) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z)))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0()))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y))) (app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)) (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(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z)), app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x)) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z)), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z)), app#(app(times(), x), app(s(), y)) -> app#(plus(), app(app(times(), x), y))) (app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x), app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)) (app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0()))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z)))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), app(s(), z)), 0())) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(times(), app(s(), z))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x)) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(s(), y)) -> app#(plus(), app(app(times(), x), y))) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0())), app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)) (app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0())), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y))) (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(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), y), app(app(times(), app(s(), z)), 0()))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z)))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), app(s(), z)), 0())) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(times(), app(s(), z))) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(s(), y)) -> app#(app(plus(), app(app(times(), x), y)), x)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)) (app#(app(map(), f), app(app(cons(), x), xs)) -> app#(f, x), app#(app(times(), x), app(s(), y)) -> app#(plus(), app(app(times(), x), 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(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#(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(plus(), x), app(s(), y)) -> app#(app(plus(), x), y), app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)) (app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y), app#(app(plus(), x), app(s(), y)) -> app#(s(), app(app(plus(), x), y))) (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(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(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(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))) } STATUS: arrows: 0.855967 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), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(f, x)), f), x), xs)} Scc: {app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z)), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)} Scc: {app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)} SCC (6): 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), app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(f, x)), f), x), xs)} 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(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)), app(app(plus(), x), 0()) -> x, app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x), app(app(times(), x), 0()) -> 0(), app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)), app(app(map(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(app(filter(), f), nil()) -> nil()} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [app](x0, x1) = x0 + x1, [plus] = 0, [times] = 1, [s] = 0, [0] = 0, [nil] = 0, [map] = 0, [cons] = 1, [filter] = 0, [filter2] = 1, [true] = 1, [false] = 1, [app#](x0, x1) = x0 Strict: app#(app(filter(), f), app(app(cons(), x), xs)) -> app#(app(app(app(filter2(), app(f, x)), f), x), xs) 1 + 1x + 0f + 1xs >= 0 + 0x + 0f + 1xs 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(app(filter(), f), nil()) -> nil() 0 + 1f >= 0 app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs) 1 + 1x + 1f + 1xs >= 1 + 2x + 2f + 1xs app(app(map(), f), nil()) -> nil() 0 + 1f >= 0 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(times(), x), 0()) -> 0() 1 + 1x >= 0 app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x) 1 + 1x + 1y >= 1 + 2x + 1y app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))) 1 + 1x + 1y + 1z >= 3 + 2x + 1y + 2z app(app(plus(), x), 0()) -> x 0 + 1x >= 1x app(app(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)) 0 + 1x + 1y >= 0 + 1x + 1y app(app(app(app(filter2(), false()), f), x), xs) -> app(app(filter(), f), xs) 2 + 1x + 1f + 1xs >= 0 + 1f + 1xs app(app(app(app(filter2(), true()), f), x), xs) -> app(app(cons(), x), app(app(filter(), f), xs)) 2 + 1x + 1f + 1xs >= 1 + 1x + 1f + 1xs SCCS (0): SCC (3): Strict: {app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0()))), app#(app(times(), x), app(app(plus(), y), app(s(), z))) -> app#(app(times(), x), app(s(), z)), app#(app(times(), x), app(s(), y)) -> app#(app(times(), x), y)} 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(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)), app(app(plus(), x), 0()) -> x, app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x), app(app(times(), x), 0()) -> 0(), app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)), app(app(map(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(app(filter(), f), nil()) -> nil()} Fail SCC (1): Strict: {app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y)} 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(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)), app(app(plus(), x), 0()) -> x, app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))), app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x), app(app(times(), x), 0()) -> 0(), app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)), app(app(map(), f), nil()) -> nil(), app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs), app(app(filter(), f), nil()) -> nil()} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [app](x0, x1) = x0 + x1, [plus] = 0, [times] = 1, [s] = 1, [0] = 0, [nil] = 0, [map] = 0, [cons] = 0, [filter] = 0, [filter2] = 0, [true] = 0, [false] = 0, [app#](x0, x1) = x0 + 1 Strict: app#(app(plus(), x), app(s(), y)) -> app#(app(plus(), x), y) 2 + 0x + 1y >= 1 + 0x + 1y Weak: app(app(filter(), f), nil()) -> nil() 0 + 1f >= 0 app(app(filter(), f), app(app(cons(), x), xs)) -> app(app(app(app(filter2(), app(f, x)), f), x), xs) 0 + 1x + 1f + 1xs >= 0 + 2x + 2f + 1xs app(app(map(), f), nil()) -> nil() 0 + 1f >= 0 app(app(map(), f), app(app(cons(), x), xs)) -> app(app(cons(), app(f, x)), app(app(map(), f), xs)) 0 + 1x + 1f + 1xs >= 0 + 1x + 2f + 1xs app(app(times(), x), 0()) -> 0() 1 + 1x >= 0 app(app(times(), x), app(s(), y)) -> app(app(plus(), app(app(times(), x), y)), x) 2 + 1x + 1y >= 1 + 2x + 1y app(app(times(), x), app(app(plus(), y), app(s(), z))) -> app(app(plus(), app(app(times(), x), app(app(plus(), y), app(app(times(), app(s(), z)), 0())))), app(app(times(), x), app(s(), z))) 2 + 1x + 1y + 1z >= 5 + 2x + 1y + 2z app(app(plus(), x), 0()) -> x 0 + 1x >= 1x app(app(plus(), x), app(s(), y)) -> app(s(), app(app(plus(), x), y)) 1 + 1x + 1y >= 1 + 1x + 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 >= 0 + 1x + 1f + 1xs Qed