Я получил эту программу для работы до сих пор в GNU PrologПролог логическое уравнение решить
not(X) :- \+ X.
and(X, Y):- X , Y.
or(X, Y):- X ; Y.
implies(X, Y):- \+ X ; Y.
p.
q.
:- initialization(main).
main :-
write('Program start'), nl.
Вы можете ввести в и (р, д), и получить, да, а также и (р, нет (q)) и не получится. Теперь я хотел бы сделать что-то вроде этого:
Я устанавливаю p в true, (инициализируя его с помощью p.) И (и (p, q)) в true (но без инициализации q) и i хочу Prolog сказать: Одно решение существует: «д» должно быть истинным
Если я установить р и (или (р, д)), чтобы верно я хочу Prolog сказать: Два решения существует, «д» может быть истинным или ложным. Каков наилучший способ сделать это?
+1 для использования такого чистого представления! (Что позволяет различать объекты по их функторам). – mat