% mvlpl04

lenGtH([],0).
lenGtH([_|B],D) :- lenGtH(B,Dm1), D is Dm1 + 1.

mini(A,B,C) :- A < B,               C is A.
mini(A,B,C) :- Bp1 is B+1, A < Bp1, C is B.
maxi(A,B,C) :- A>B,                 C is A.
maxi(A,B,C) :- Bp1 is B+1, A < Bp1, C is B.

% plus existe déjà.

plus            :- nl,write('   plus(A,B,C)  correspond à  C=A+B'),nl.
moins(A,B,C)    :- C is A-B.
moins           :- nl,write('   moins(A,B,C) correspond à  C=A-B'),nl.
mult(A,B,C)     :- C is A*B.
mult            :- nl,write('   mult(A,B,C)  correspond à  C=A*B'),nl.
div(A,B,C)      :- C is A/B.
div             :- nl,write('   div(A,B,C)   correspond à  C=A/B (division entière)'),nl.
prem(A,_,A).
prem            :- nl,write('   prem(A,B,C)  correspond à C=A'),nl.
deuz(_,A,A).
deuz            :- nl,write('   deuz(A,B,C)  correspond à C=B'),nl.