Z3 4.5.1 中缺少 (str.to-int s)

Missing (str.to-int s) in Z3 4.5.1

我正在使用 Z3 4.5.1 成功地处理字符串和操作,例如子字符串、字符串长度、字符串比较等。就像这个例子:

(declare-const s1 String)
(declare-const s2 String)
(declare-const i Int)
(assert (= s1 "97\x00098\x0099###$$"))
(assert (= s2 (str.substr s1 2 (- (str.len s1) 2))))
(assert (= "\x00058\x0099###$$" (str.replace s2 "9" "5")))
(check-sat)
(get-value (s1 s2 i))

但是,当我尝试添加 str.to-int:

(declare-const s1 String)
(declare-const s2 String)
(declare-const i Int)
(assert (= s1 "97\x00098\x0099###$$"))
(assert (= s2 (str.substr s1 2 (- (str.len s1) 2))))
(assert (= "\x00058\x0099###$$" (str.replace s2 "9" "5")))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(assert (= 98 (str.to-int "000098")))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(check-sat)
(get-value (s1 s2 i))

我收到这个错误:

(error "line 8 column 35: unknown function/constant str.to-int")

我很困惑,因为 "to-int" 与其他文档一起出现在文档中 一切正常的字符串操作。我正在使用此文档:Z3str3 Input Language。非常感谢任何帮助,谢谢!!

Z3 已经使用 str.to.int 和 int.to.str 一段时间了。字符串的 SMTLIB2 格式此时也尚未最终确定。