在Prolog中构造XOR/3
我有以下关于/3命题逻辑的子句在Prolog中构造XOR/3,prolog,xor,Prolog,Xor,我有以下关于/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). o
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子句?这应该可以
xor(false, false, false).
xor(false, true, true).
xor(true, false, true).
xor(true, true, false).
您可以使用以下选项之一:选择第一个(p∨ Q)∧ (P∧ Q) ,
你会得到:
?- 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.
?- 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.