(VAR X Y) (RULES 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)) )