Z3:关于Z3 int2bv的问题?

时间:2015-01-13 03:48:52

标签: z3 smt

我对Z3(smt2格式)操作 int2bv 有点困惑。我写了一个这样的smt2表达式:

(declare-const t1 Int)
(assert (= ((_ int2bv 2) t1) #b11))
(check-sat)
(get-model)

当我用Z3解决它时,它得到了:

sat
(model 
  (define-fun t1 () Int
    0)
)

这是对的吗? t1不应该是3吗?我认为int2bv操作只是将int值转换为等效的bitvector值。但似乎没有!

谢谢!

1 个答案:

答案 0 :(得分:1)

int2bv函数基本上被解释为未解释的(如文档中所述),因此语义不精确。以前有一些关于这些转换函数的问题,它们在这里也可能有用:

Z3: an exception with int2bv

Check overflow with Z3

bv-enable-int2bv-propagation option