私はMathematica(v8)を初めて使用しており、命題論理をプログラムするために使っています。Mathematica If-Then vs. Implies
If
とImplies
の演算子の違いは何ですか?たとえば、
If[p,q]
とImplies[p,q]
の両方が返されます。q
p=True
(期待どおり)。
しかし、私はSatisfiabilityInstancesを取得しようとすると、私は次を得る:
SatisfiabilityInstances[If[p, q], {p, q}]
(*
{{True, True}}
*)
私はそれ以上のインスタンスのためにそれを聞いていない限り:
SatisfiabilityInstances[If[p, q], {p, q}, All]
SatisfiabilityInstances :: boolv:「もし[pは、q]は{False、True}でブール値ではありません。
ただし、
SatisfiabilityInstances[Implies[p, q], {p, q}, All]
のうち、期待リターン:
(* {{True, True}, {False, True}, {False, False}} *)
出力にこの違いを引き起こしていますか?
あなたが良いのチュートリアルに私を指示することはできますか?私はMathematicaのドキュメントを読んだが、Ifなら4つの値を与えることは可能であることに気づいていなかった(if-elseに対しては3つしかない)。 '[a、b、c、d]が真理値が割り当てられていない' d 'を返す場合、それはなぜですか? @Dims – QuietThud
@QuietThud '[条件、真句、偽句、真偽偽でない句] ' –
ありがとうございます@belisarius。 =)私は数学までの推薦を感謝します。プログラミングの学習ソースが出てきます。ドキュメントはリファレンスとしてうまく機能します。 – QuietThud