O que é o lógico 'não' no Prolog?

O problema que enfrento é um pouco trivial. Eu quero usar a lógica não no Prolog, mas parece quenot/1 não é o que eu quero:

course(ai).
course(pl).
course(os).

have(X,Y) :- course(X),course(Y),not(X = Y).

I consulta:

have(X,Y), write(X-Y), nl , fail.

Eu não obtenho o resultado desejado:

questionAnswers(5)

yourAnswerToTheQuestion