(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

app(app(*, x), app(app(+, y), z)) → app(app(+, app(app(*, x), y)), app(app(*, x), z))
app(app(*, app(app(+, y), z)), x) → app(app(+, app(app(*, x), y)), app(app(*, x), z))
app(app(*, app(app(*, x), y)), z) → app(app(*, x), app(app(*, y), z))
app(app(+, app(app(+, x), y)), z) → app(app(+, x), app(app(+, y), z))
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(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)

Q is empty.