我一直试图在python中做这样的事情:
(set-option :smt.arith.solver 1)
(declare-const x Int)
(declare-const y Int)
(assert (>= 10 x))
(assert (>= x (+ y 7)))
(maximize (+ x y))
(check-sat)
我已经能够为解算器(solver.set('smt.arith.solver', 1)
)执行此操作,但无法使用Optimize类执行此操作。是否可以在python中编写类似上面的内容?
此外,如果已设置为差分逻辑的求解器获得常规整数线性程序会抛出错误吗?
答案 0 :(得分:0)
说明逻辑的标准方法是在使用SolverFor()工厂创建求解器实例时提供逻辑的SMT-LIB名称(参见https://z3prover.github.io/api/html/z3.html)
没有必要设置一个逻辑来使Z3工作,因此可能值得找到问题的工作版本而不必担心逻辑。