z3 / python reals

时间:2012-04-02 00:33:47

标签: python z3

使用z3 / python web界面,如果我问:

x = Real ('x')
solve(x * x == 2, show=True)

我很高兴:

Problem:
[x·x = 2]
Solution:
[x = -1.4142135623?]

我认为以下smt-lib2脚本具有相同的解决方案:

(set-option :produce-models true)
(declare-fun s0 () Real)
(assert (= 2.0 (* s0 s0)))
(check-sat)

唉,我用z3(v3.2)得到unknown

我怀疑问题出现在非线性术语(* s0 s0)上,而python接口在某种程度上不会受到影响。有没有办法在smt-lib2中编写相同的代码来获取模型?

1 个答案:

答案 0 :(得分:1)

使用Z3网络界面试用your example,我得到sat的结果。

Z3网页界面和Z3Py基于Z3 v4.0,所以我认为问题已在即将发布的版本中修复。