z3:将公式转换为dnf

时间:2012-10-23 14:24:24

标签: z3

在Z3 python中有一个内置方法将公式转换为DNF吗?我会想象应用一些策略或策略来做到这一点。

此外,如何“创建”表达式,例如,如果我有变量

op=Or, arg1=True, arg2=False

我想使用op,arg1,arg2创建表达式Or(True,False)。我可以做类似

的事情
if op.name == 'or':   Or(arg1,arg2)   
elif op.name == 'and':  And(arg1,arg2)
...

但有更好的方法吗?

另外,我记得Z3中有一个文件列出了排序代码,例如: 2L是Z3_INT_SORT,它的名字是什么?

1 个答案:

答案 0 :(得分:0)

请参阅此答案,了解如何转换为DNF:How to convert a formula to Disjunctive Normal Form?

作为相关说明,请参阅此答案,了解如何转换为CNF:Convert formula to CNF

这些示例采用SMT格式,此处为z3py:http://rise4fun.com/Z3Py/ik4