受related SMT2 question的启发,我尝试将Bool
变量链接到BitVector
的各个位。
简化示例:
(declare-fun a () Bool)
(declare-fun v () (_ BitVec 2))
(assert (= ((_ extract 0 0) v) (ite a #b1 #b0)))
我必须将数百个变量链接到向量。我的目标是以一种相当紧凑的方式使用BitVector
约束。
是否真的有必要通过
ite
调用在长度为1的BitVectors
与Bool
变量之间进行映射?