MAYBE Trs: { bits(x) -> bitIter(x, 0()), inc(s(x)) -> s(inc(x)), inc(0()) -> 0(), zero(s(x)) -> false(), zero(0()) -> true(), p(s(x)) -> x, p(0()) -> 0(), if(true(), x, y) -> p(y), if(false(), x, y) -> bitIter(half(x), y), half(s(s(x))) -> s(half(x)), half(s(0())) -> 0(), half(0()) -> 0(), bitIter(x, y) -> if(zero(x), x, inc(y))} Comment: We consider a duplicating trs. FAIL: Open