证明命题重言式的策略?

时间:2014-09-27 09:28:47

标签: logic boolean-logic algebra boolean-expression theorem-proving

输入是带有(任意)检查语法的符号字符串,输出为TRUE或FALSE。

我的想法用AND,XOR和TRUE编写的逻辑表达式的修复后表示,但我终于意识到在修复后很难识别模式。

示例:

p IMPLIES q 可以写成 TRUE XOR p(XOR(p AND q))缩写为1 + p + pq

p等于q 可以写成缩写1 + p + q

NOT p 缩写为1 + p

p OR q 缩写为p + q + pq

布尔环中的规则与普通代数中的规则相同,具有两个规则

  • P + p = 0时
  • PP = P

这些规则与减刑一起负责所有削减,这将导致“1”和“减少”。如果字符串对应于重言式。重言式Modus ponens,

((p IMPLIES q)和p)IMPLIES q

应首先如上所述替换,然后通过分布式相乘进行扩展,最后重复进行简化。直接替换IMPLIES给出了:

1+((1+f+fg)f)+((1+f+fg)f)g =
= 1+ f+ff+fgf +(f+ff+fgf)g =
= 1+ f+f+fg + fg+fg+fg =
= 1+ fg +fg+fg+fg = 1

当一个重言式表达式被写为布尔环中的一个元素时,它会机械地减少到1.其他表达式减少到代数上更简单的表达式。

这是一个好策略吗?计算机科学采用了哪些策略?

1 个答案:

答案 0 :(得分:2)

如本overview paper所述,任意命题公式可以转换为 Conjunctive Normal Form CNF),使得它只有更大的多项式和如果原始公式是重言式,则不可满足。

从公式转换为CNF的实用工具包括bool2cnfbc2cnf

SAT solvers用于检查CNF包含CryptoMiniSatLingeling的不可满足性。

参见related post,其中显示了如何使用SAT求解器处理命题公式。