natural(zero). natural(s(X)):- natural(X). xPlusYisZ(X, zero, X):- natural(X). xPlusYisZ(zero, X, X):- natural(X). xPlusYisZ(X, Y, s(s(Z1))):- natural(X), natural(Y), s(X1)=X, s(Y1)=Y, xPlusYisZ(X1, Y1, Z1). xTimesYisZ(X, zero, zero):- natural(X). xTimesYisZ(zero, X, zero):- natural(X). xTimesYisZ(X, s(zero), X):- natural(X). xTimesYisZ(s(zero), X, X):- natural(X). 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).