Z3将“小”BitVectors转换为Ints

时间:2017-10-29 12:20:12

标签: z3 bitvector

我知道 bv2int int2bv 在Z3中作为未解释的函数处理。仍然,我正在寻找解决以下问题的最佳实践:给出“小”(< 10位)位向量索引, 如何有效地将其转换为Int,并在像这样的查询中使用:

(declare-const s String)
(declare-const someInt                Int)
(declare-const someBitVec10 (_ BitVec 10))

(assert (= s "74g\x00!!#2#$$"))

;(assert (str.in.re (str.at s someBitVec10) (re.range "a" "z")))
( assert (str.in.re (str.at s someInt     ) (re.range "1" "3")))

(check-sat)
(get-value (s someInt))

输出:

sat
((s "74g\x00!!#2#$$")
 (someInt 7))

谢谢!

0 个答案:

没有答案