如何将布尔表达式转换为cnf文件?

时间:2010-10-16 07:39:03

标签: java boolean-expression conjunctive-normal-form sat-solvers

我需要使用sat求解器来检查布尔表达式的可满足性。

我有像这样的复杂布尔表达式

alt text

是否有任何自动cnf文件转换器,以便我可以直接给坐在求解器?

我读了cnf格式文件..但是如何在.cnf文件中表达这个表达式?当paranthesis里面有一个连词以及如何表达时,我会感到困惑 - >和< - > ?请帮帮我

2 个答案:

答案 0 :(得分:6)

有几种解决方案。

Limboole是一个开源工具,我认为它包含一个单独的'CNF'转换的命题逻辑。

更一般地说,您还可以使用支持命题逻辑的工具;一些示例包括Z3CVC3Yices

答案 1 :(得分:2)

SBSAT是一个基于状态的SAT求解器,能够接受各种输入格式。您可以采用一个简单的表达式并将其提供给SBSAT以转换为CNF。 manual,第4.10节描述了如何执行此操作。