TRS:
 {         minus(X, s(Y)) -> pred(minus(X, Y)),
            minus(X, 0()) -> X,
               pred(s(X)) -> X,
           le(s(X), s(Y)) -> le(X, Y),
            le(s(X), 0()) -> false(),
               le(0(), Y) -> true(),
              gcd(0(), Y) -> 0(),
           gcd(s(X), 0()) -> s(X),
          gcd(s(X), s(Y)) -> if(le(Y, X), s(X), s(Y)),
   if(true(), s(X), s(Y)) -> gcd(minus(X, Y), s(Y)),
  if(false(), s(X), s(Y)) -> gcd(minus(Y, X), s(X))}
 Fail