我想使用 Z3 对位向量进行推理。除了可满足性决定之外,我还想要位向量的符号表示,以便我可以根据需要对它们应用我自己的计算。例如:
让,
- X[3:0], Y[3:0], Z[4:0] 被声明为位向量而不初始化任何值
- 打印 X[3:0]
- X[3:0] <- X[3:0] >> 1(逻辑移位)
- 打印 X[3:0]
- Z[4:0] <- X[3:0] + Y[3:0]
- 打印 Z[4:0]
- …………
所需的输出(像这样的符号):
> 2. [x3 x2 x1 x0]
> 4. [0 x3 x2 x1]
> 6. [s4 s3 s2 s1 s0]
使用Z3可以做到这一点吗?