【发布时间】:2016-09-28 07:57:51
【问题描述】:
我知道我们可以选择像AUFLIRA这样的逻辑供Z3或νZ(或z3opt,Z3的优化分支)使用
(set-logic AUFLIRA)
在输入.smt2 文件中。
但是如果我们需要使用 Python API 设置这个逻辑呢?我们可以使用哪些方法来做到这一点?
我检查了一些documentation,我注意到z3 模块中有一个SolverFor(logicName) 用于基于给定逻辑创建求解器(例如通过调用SolverFor('AUFLIRA')),但我有以下问题:
-
νZ 呢?
李>z3模块也有Optimize对象,其工作方式类似于Solver对象,但我没有看到任何OptimizeFor()方法来获取给定逻辑的Optimize对象。 z3模块中的SolverFor()方法从不引发异常,即使我通过调用SolverFor('abcd')指定了不存在 逻辑。文档说如果 Z3 不支持该逻辑,那么它将使用默认设置,但是我怎么知道它是否使用我提供的逻辑(例如AUFLIRA逻辑) ?
谢谢
【问题讨论】: