【发布时间】:2012-10-17 04:51:19
【问题描述】:
我是 Mathematica(v8) 的新手,正在使用它来编写命题逻辑。
我想知道If 和Implies 运算符之间有什么区别。例如,If[p,q] 和 Implies[p,q] 都为 p=True 返回 q(如预期的那样)。
但是当我尝试获取 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}} *)
是什么导致输出出现这种差异?
【问题讨论】:
标签: if-statement wolfram-mathematica boolean-logic