Code Prolog de l'algorithme génère et teste

genereEtTeste(Affectation) :-
variables(Variables),
genere(Variables,Affectation),
teste(Affectation).

genere([],[]).
genere([X:DX|Variables],[(X,V)|Affectation]) :-
member(V,DX),
genere(Variables,Affectation).

teste([]).
teste([(Xi,Vi)|L]) :-
teste((Xi,Vi),L),
teste(L).

teste(_,[]).
teste((Xi,Vi),[(Xj,Vj)|L]) :-
consistants((Xi,Vi),(Xj,Vj)),
teste((Xi,Vi),L).