1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| /*definition des entiers de peano*/
entier(zero).
entier(succ(X)) :- entier(X).
/*vrai si le premier parametre est inferieur ou egal au second*/
inf_ou_egal(zero, Z) :- entier(Z).
inf_ou_egal(succ(X), succ(Y)) :- inf_ou_egal(X,Y).
/*vrai si le 3e param correspond bien a la somme des 2 autres*/
add(zero, Y, Y) :- entier(Y).
add(succ(X), Y, succ(Z)) :- add(X, Y, Z).
/*vrai si le 3e param est bien la difference du premier et du deuxieme param*/
sub(X, zero, X) :- entier(X).
sub(X, succ(Y), Z) :- sub(X, Y, succ(Z)).
/*vrai si le 3e param est bien le produit des 2 autres*/
mult(Y, zero, zero) :- entier(Y).
mult(X, succ(Y), Z) :- mult(X, Y, sub(Z, X, R)), entier(R). |
Partager