私はMathematica(v8)を初めて使用し、命題論理をプログラムするためにそれを使用しています。
IfとImplies演算子の違いは何だろうと思います。たとえば、とは両方
とも(予想どおり)If[p,q]にImplies[p,q]戻ります。qp=True
しかし、SatisfiabilityInstancesを取得しようとすると、次のようになります。
SatisfiabilityInstances[If[p, q], {p, q}]
(*
{{True, True}}
*)
私がそれ以上のインスタンスを要求しない限り:
SatisfiabilityInstances[If[p, q], {p, q}, All]
SatisfiabilityInstances :: boolv: "If [p、q]は{False、True}でブール値ではありません。
でも:
SatisfiabilityInstances[Implies[p, q], {p, q}, All]
期待値を返します:
(* {{True, True}, {False, True}, {False, False}} *)
この出力の違いの原因は何ですか?