我目前的项目涉及计算/近似用位向量算术表示的一组约束中的模型数。模型空间通常非常大,因此枚举方法不能很好地扩展。例如:
A = BitVec('A', 32)
B = BitVec('B', 32)
solver.add(A>B)
解空间为0.5 * 2 **(2 * 32),超出了传统概率和枚举模型的范围。我希望利用现有的工具,例如http://arxiv.org/pdf/1507.00142.pdf,但它仅适用于LIA。
我想知道是否存在允许诸如抽象的现有方法或API。否则,另一个选项似乎是将所有子句手动转换为LIA(线性整数算术)。
非常感谢先进。