MAYBE MAYBE 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() } DUP: We consider a duplicating system. 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() } Fail