是否可以在 z3Py 中转换BoolRef
为一位长?BitVecRef
在我的设计中,要求 aBitVecRef
从两个其他的比较中返回BitVecRef
。这类似于将 pythonbool
转换为int
. 以下是它的使用示例:
bv1, bv2, added = z3.BitVecs('bv1 bv2 added', 4)
res = z3.BitVec('res', 1)
s = z3.Solver()
s.add(res == (bv1 < bv2))
s.add(added == added + z3.ZeroExt(3, res))
这将是理想的,但(bv1 < bv2)
is的类型Boolref
,它会引发“排序不匹配”错误。有没有办法将结果转换为可以(bv1 < bv2)
断言res
等于它的结果?