在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,它的名字是什么?
答案 0 :(得分:0)
请参阅此答案,了解如何转换为DNF:How to convert a formula to Disjunctive Normal Form?
作为相关说明,请参阅此答案,了解如何转换为CNF:Convert formula to CNF
这些示例采用SMT格式,此处为z3py:http://rise4fun.com/Z3Py/ik4