迭代未饱和的核心
Iterating over unsat cores
我在 Z3
中使用 (get-unsat-core)
来提取一组不可满足的约束的 unsat-core。然而,一些约束可能有不止一个不饱和核。在这种情况下,有什么方法可以迭代 unsat-cores 吗?
是的,但它并不完全直截了当。 Mark Liffiton 及其合作者的 MARCO 算法及其变体是提取多核的良好选择。
Z3 分布带有一个 Python 简化 MARCO 算法的例子。
http://theory.stanford.edu/~nikolaj/mod.html#/sec-cores-correction-sets-satisfying-assignments
中还描述了其他变体
我在 Z3
中使用 (get-unsat-core)
来提取一组不可满足的约束的 unsat-core。然而,一些约束可能有不止一个不饱和核。在这种情况下,有什么方法可以迭代 unsat-cores 吗?
是的,但它并不完全直截了当。 Mark Liffiton 及其合作者的 MARCO 算法及其变体是提取多核的良好选择。 Z3 分布带有一个 Python 简化 MARCO 算法的例子。 http://theory.stanford.edu/~nikolaj/mod.html#/sec-cores-correction-sets-satisfying-assignments
中还描述了其他变体