TRS:
 {                 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),
                  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