是否可以使用带有位向量和连接的量词?为了说明,在最新的 Z3 中运行以下代码:
a = BitVec('a', 8)
b = Concat(BitVec('b', 4), BitVec('c', 4))
prove(ForAll(a, Exists(b, a == b)))
产生以下错误:
BitVecRef instance has no attribute '__len__'
我尝试在其中添加一个简单的__len__
方法,BitVecRef
但出现了更多问题。
如果没有Concat
,代码将按预期工作。例如:
a = BitVec('a', 8)
b = BitVec('b', 8)
prove(ForAll(a, Exists(b, a == b)))
输出正确:proved