% Author: MACHIZAUD Andréa
% Date: 08/10/2010
% Ensemble des naturels

nat(zero).
nat( s(X) ) :-
     nat(X).
     
add(zero,Y,Y).                     % 0 + Y = Y
add(s(X),Y,s(Z)) :-
     add(X,Y,Z).                   % (X+1) + Y = (Z+1) si X + Y = Z
     
mult(zero,_,zero).                 % 0 * Y = 0
mult(X,Y,Z) :- mult(Y,X,Z).
mult(s(X),Y,Z) :-
     mult(X,Y,Z1),
     add(Z1,Y,Z).
     
sous(X,Y,Z) :-
     add(Z,Y,X).

egal(X,X).

div(X,Y,Z) :-
     mult(Z,Y,X),
     not(egal(Y,zero)).
     
pair(zero).
pair(s(X)) :-
     impair(X).
impair(s(X)):-
     pair(X).