我正在努力使用MiniSat来解决约束满足问题。在一阶逻辑中,问题很容易用一些离散域变量和一些谓词来表示。
然而,MiniSat以及我迄今为止见过的其他CSP求解器都希望以CNF格式输入。所以我正在寻找各种类型的“预处理器”,它们将一阶逻辑表达式转换为CNF。
有什么想法吗?
答案 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/
下载