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