莱昂纳多:感谢您的快速回复!非常感激。
如果我将以下脚本提供给 Z3:
(set-option :MBQI true)
(set-option :produce-models true)
(declare-fun s1 ((_ BitVec 16)) (_ BitVec 16))
(assert (forall ((s0 (_ BitVec 16))) (bvuge s0 (s1 s0))))
(check-sat)
(get-model)
(eval (s1 #x0000))
Z3 成功构建了模型,其中s1
给出了恒等函数。但是,对 eval 的调用会导致 Z3 超时。我需要设置一个特定的选项吗?
另外,我注意到如果我删除该行:
(set-option :MBQI true)
然后 Z3 回应unknown
。由于 QBVF 是可判定的,所以我需要设置一个选项有点令人惊讶。是不是我们应该true
在所有 QBVF 问题中设置 MBQI,还是这个实例有什么特别之处?
谢谢..