MAYBE MAYBE TRS: { app(app(app(fold(), f), x), app(app(cons(), y), z)) -> app(app(f, y), app(app(app(fold(), f), x), z)), app(app(app(fold(), f), x), nil()) -> x, app(app(plus(), app(s(), x)), y) -> app(s(), app(app(plus(), x), y)), app(app(plus(), 0()), y) -> y, app(app(times(), app(s(), x)), y) -> app(app(plus(), app(app(times(), x), y)), y), app(app(times(), 0()), y) -> 0(), sum() -> app(app(fold(), add()), 0()), prod() -> app(app(fold(), mul()), app(s(), 0())) } DUP: We consider a duplicating system. Trs: { app(app(app(fold(), f), x), app(app(cons(), y), z)) -> app(app(f, y), app(app(app(fold(), f), x), z)), app(app(app(fold(), f), x), nil()) -> x, app(app(plus(), app(s(), x)), y) -> app(s(), app(app(plus(), x), y)), app(app(plus(), 0()), y) -> y, app(app(times(), app(s(), x)), y) -> app(app(plus(), app(app(times(), x), y)), y), app(app(times(), 0()), y) -> 0(), sum() -> app(app(fold(), add()), 0()), prod() -> app(app(fold(), mul()), app(s(), 0())) } Fail