我也在这里发布this z3 issue以防任何z3用户以某种方式遇到它。我们正在尝试使用 int.to.str 的语义,我们发现奇怪的行为 看起来像一个bug 。这是第一个可行的查询:
(declare-const s String)
(declare-const i Int)
(assert (< i -2))
(assert (= s (int.to.str i)))
(assert (< 0 (str.len s )))
(check-sat)
(get-value (s i))
结果:
sat
((s "-11")
(i (- 11)))
当我更改'&lt;'时签到'='我收到的回复不太好:
(declare-const s String)
(declare-const i Int)
(assert (= i -2))
(assert (= s (int.to.str i)))
(assert (< 0 (str.len s )))
(check-sat)
(get-value (s i))
以下是我得到的结果:
unsat
(error "line 10 column 16: model is not available")
我在这里遗漏了什么吗?谢谢!