TRS:
 {                 le(0(), y) -> true(),
                le(s(x), 0()) -> false(),
               le(s(x), s(y)) -> le(x, y),
                minus(0(), y) -> 0(),
               minus(s(x), y) -> if_minus(le(s(x), y), s(x), y),
    if_minus(true(), s(x), y) -> 0(),
   if_minus(false(), s(x), y) -> s(minus(x, y)),
                  mod(0(), y) -> 0(),
               mod(s(x), 0()) -> 0(),
              mod(s(x), s(y)) -> if_mod(le(y, x), s(x), s(y)),
   if_mod(true(), s(x), s(y)) -> mod(minus(x, y), s(y)),
  if_mod(false(), s(x), s(y)) -> s(x)}
 Fail