MAYBE MAYBE TRS: { app(app(app(if(), true()), x), y) -> x, app(app(app(if(), true()), x), y) -> y, app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app( app( app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs)) ), nil() ), app(app(takeWhile(), p), nil()) -> nil(), app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app( app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs) ), app(app(dropWhile(), p), nil()) -> nil() } DUP: We consider a duplicating system. Trs: { app(app(app(if(), true()), x), y) -> x, app(app(app(if(), true()), x), y) -> y, app(app(takeWhile(), p), app(app(cons(), x), xs)) -> app( app( app(if(), app(p, x)), app(app(cons(), x), app(app(takeWhile(), p), xs)) ), nil() ), app(app(takeWhile(), p), nil()) -> nil(), app(app(dropWhile(), p), app(app(cons(), x), xs)) -> app( app(app(if(), app(p, x)), app(app(dropWhile(), p), xs)), app(app(cons(), x), xs) ), app(app(dropWhile(), p), nil()) -> nil() } Fail