到目前为止,我已经让这个程序在 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.
你可以输入 and(p,q) 得到是,也可以输入 and(p,not(q)) 得到否定。现在我想做这样的事情:
我将 p 设置为真,(通过用 p. 初始化它)和 (and(p,q)) 为真(但没有初始化 q),我想让 prolog 说:存在一种解决方案:“q”必须为真
如果我将 p 和 (or(p,q)) 设置为真,我希望 prolog 说:存在两种解决方案,“q”可以是真或假。最好的方法是什么?