(VAR x y ) (RULES le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) minus(x, 0) -> x minus(s(x), s(y)) -> 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) )