natural(zero). natural(X):- X=s(X1), natural(X1). xPlusYisZ(X, Y, Z):- natural(X), Y=zero, Z=X. xPlusYisZ(X, Y, Z):- X=zero, natural(Y), Z=Y. xPlusYisZ(X, Y, Z):- natural(X), natural(Y), s(X1)=X, s(Y1)=Y, xPlusYisZ(X1, Y1, Z1), Z=s(s(Z1)). xTimesYisZ(X, Y, Z):- natural(X), Y=zero, Z=zero. xTimesYisZ(X, Y, Z):- X=zero, natural(Y), Z=zero. xTimesYisZ(X, Y, Z):- natural(X), Y=s(zero), Z=X. xTimesYisZ(X, Y, Z):- X=s(zero), natural(Y), Z=Y. xTimesYisZ(X, Y, Z):- natural(X), natural(Y), s(X1)=X, xTimesYisZ(X1, Y, Z1), xPlusYisZ(Z1, Y, Z). xMinusYisZ(X, Y, Z):- xPlusYisZ(Y, Z, X). xDivdedByYisZ(X, Y, Z):- xTimesYisZ(Y, Z, X).