Прежде всего limo
является символом, и вы не можете отрицать символы. То, что вы хотите сделать, это отрицать предикат, то есть not(eat(X, limo))
.
Однако это все равно не даст вам nona
в результате. Почему бы и нет? Ну, есть бесконечно много значений X, для которых eat(X, limo)
будет ложным. Системе нужно больше информации, чем «X не ест лимузин», чтобы узнать, какой вы хотите. Вместо этого нам нужно попросить X
такой, что «Х ест что-то, но Х не ест лимузин». Это приводит нас к следующему запросу:
eat(X,Y), not(eat(X, limo)).
Что дает нам nona
в качестве решения для X
.