将一阶逻辑转换为CNF

时间:2011-08-31 20:26:19

标签: logic artificial-intelligence constraints constraint-programming conjunctive-normal-form

我正在努力使用MiniSat来解决约束满足问题。在一阶逻辑中,问题很容易用一些离散域变量和一些谓词来表示。

然而,MiniSat以及我迄今为止见过的其他CSP求解器都希望以CNF格式输入。所以我正在寻找各种类型的“预处理器”,它们将一阶逻辑表达式转换为CNF。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可能想要考虑来自比利时鲁汶的Katholieke Univ的IDP3:http://dtai.cs.kuleuven.be/krr/software/idp3 IDP3命题化一阶理论(带有归纳定义的类型一阶逻辑,聚合,有界算术)并应用minisat。

另一种选择是来自Koen Claessen(瑞典Chalmers U)的Paradox。 Paradox是一阶逻辑的有限模型查找器,也可以通过转换为SAT然后使用MiniSAT解决公式来开始。 Paradox的源代码可以从http://www.cse.chalmers.se/~koen/code/

下载