I have interpreters and languages.
interpreter(fran,french).
interpreter(geraldine,german).
interpreter(dudley,dutch).
interpreter(spike,spanish).
interpreter(polly,polish).
interpreter(ron,romanian).
language(french).
language(german).
language(dutch).
language(spanish).
language(polish).
language(romanian).
and the rule: No interpreters speak the same language.
Any help?
One way to approach this is to first check if any two interpreters speak the same language, and then check if the negation of that rule is true.
rule2 :- not(nrule2(X, Y)).
nrule2(X, Y) :- interpreter(X, L1), interpreter(Y, L2), X \= Y, L1 = L2.
rule2 is only true above if no two interpreters speak the same language.