问:Z3,包含int

时间:2016-03-10 23:43:27

标签: z3

我试图从一个公式中消除量词,该公式包含一个int变量的位移,如{x}为int x和y。由于Z3中没有int的位移操作,我尝试了2种方法来模拟位移:

1)将int转换为bitvector并在位移后转换回来。代码在哪里

\exists y. y=x>>1

2)使用除法和乘法来模拟移位。代码在哪里

(declare-const y Int)
(assert (exists ((x Int)) (= y (bv2int (bvlshr ((_ int2bv 8) x) #x02)))))
(apply qe)

但是对于这两种方法,输出仍然包含quantfer (declare-const y Int) (assert (exists ((x Int)) (= y (div x 4)))) (apply qe) 。这是由错误引起的还是我需要使用一些策略来使其工作。有没有办法在量词消除中移动int变量

0 个答案:

没有答案