TRS:
 {        -(x, 0()) -> x,
      -(s(x), s(y)) -> -(x, y),
          *(x, 0()) -> 0(),
         *(x, s(y)) -> +(*(x, y), x),
   if(true(), x, y) -> x,
  if(false(), x, y) -> y,
           odd(0()) -> false(),
        odd(s(0())) -> true(),
       odd(s(s(x))) -> odd(x),
          half(0()) -> 0(),
       half(s(0())) -> 0(),
      half(s(s(x))) -> s(half(x)),
   if(true(), x, y) -> true(),
  if(false(), x, y) -> false(),
          pow(x, y) -> f(x, y, s(0())),
       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))}
 Fail