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)),
                  gcd(0(), y) -> y,
               gcd(s(x), 0()) -> s(x),
              gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)),
   if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)),
  if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x))}
 Fail