MAYBE MAYBE TRS: { app(app(app(fold(), f), app(app(cons(), h), t)), x) -> app(app(app(fold(), f), t), app(app(f, x), h)), app(app(app(fold(), f), nil()), x) -> x, app(app(app(fold(), mul()), l), 1()) -> app(prod(), l), app(sum(), l) -> app(app(app(fold(), add()), l), 0()) } DUP: We consider a duplicating system. Trs: { app(app(app(fold(), f), app(app(cons(), h), t)), x) -> app(app(app(fold(), f), t), app(app(f, x), h)), app(app(app(fold(), f), nil()), x) -> x, app(app(app(fold(), mul()), l), 1()) -> app(prod(), l), app(sum(), l) -> app(app(app(fold(), add()), l), 0()) } Fail