【发布时间】:2011-09-09 07:22:18
【问题描述】:
跟进之前的讨论:Z3: Extracting existential model-values
有没有区别:
(declare-fun sx ((_ BitVec 16)) (_ BitVec 16))
(assert (forall ((y (_ BitVec 16))) (bvuge y (sx y))))
和
(declare-fun sx ((_ BitVec 16)) (_ BitVec 16))
(declare-fun y () (_ BitVec 16))
(assert (bvuge y (sx y)))
就Z3而言?也就是说,我还会自动获得后者的 QBVF 求解器吗?
另外,经过实验,我发现如果我发出:
(eval (sx #x8000))
在拨打(check-sat) 之后,它工作正常(这很棒)。如果我也可以说:
(eval (sx (get-value (y))))
唉,对于那个查询,Z3 抱怨它是一个invalid function application。有没有办法以这种方式使用eval 函数?
谢谢!
【问题讨论】:
标签: z3