布尔表达式求解器/简化器

我正在寻找一个非常大(但不复杂)的代数的布尔表达式求解器: BoolscheAusdrückevereinfachen(Axiome)我想要一些代码(c ++或java [或库])来简化巨大的布尔表达式。 我还没发现什么。 我只是想做一些“简单”转换,如:

a && ~a -> 0 a || a && (b || c) -> a 

但更长。 我想在目前使用符号(a,b,c1,d1 ..)而不是TRUE,FALSE,0或1。 先谢谢你。

编辑:如果我自己写,我可以使用Javaluator并评估。 当我有: (adb+c) && d我想从繁多开始。 有人有想法吗?

我最喜欢的工具是Logic Friday 1 。 它可以免费用于非商业用途。

Logic Friday 1接受布尔表达式作为公式和真值表。 它包括Berkeley工具Espresso和misII的编译二进制文件。 后者用于多级function。

另一个工具是bc2cnf 。 它将布尔表达式(或一组表达式)作为“电路”读取,并将其转换为合取范式 (CNF),基本上是OR表达式的乘积。 bc2cnf在此转换过程中应用了一些简化规则。 对于适度大小的表达式,可以选择将CNF转换为析取范式 (DNF)并使用Espresso来获得最小化的forms。