MAYBE Trs: { -(s(x), s(y)) -> -(x, y), -(x, 0()) -> x, pow(x, y) -> f(x, y, s(0())), half(0()) -> 0(), half(s(0())) -> 0(), half(s(s(x))) -> s(half(x)), *(x, 0()) -> 0(), *(x, s(y)) -> +(*(x, y), x), f(x, 0(), z) -> z, f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z)), odd(0()) -> false(), odd(s(0())) -> true(), odd(s(s(x))) -> odd(x), if(true(), x, y) -> true(), if(true(), x, y) -> x, if(false(), x, y) -> false(), if(false(), x, y) -> y} Comment: We consider a duplicating trs. FAIL: Open