对于/ 3命题逻辑,我有以下条款。
statement(false).
statement(true).
not(false, true).
not(true, false).
and(false, false, false).
and(false, true, false).
and(true, false, false).
and(true, true, true).
or(false, false, false).
or(false, true, true).
or(true, false, true).
or(true, true, true).
implying(X, Y, Z) :- not(X, Not_X) , or(Not_X, Y, Z).
我该如何添加XOR子句?
答案 0 :(得分:2)
您可以使用equivalences中的一个:选择第一个,(P∨Q)¬¬(P∧Q),
xor(P,Q,R) :-
or(P,Q,O),
and(P,Q,A),
not(A,N),
and(O,N,R).
您得到:
?- forall(xor(P,Q,R),writeln(xor(P,Q,R))).
xor(false,false,false)
xor(false,true,true)
xor(true,false,true)
xor(true,true,false)
true.
答案 1 :(得分:1)
这应该有效。
xor(false, false, false).
xor(false, true, true).
xor(true, false, true).
xor(true, true, false).