【发布时间】:2013-05-01 13:58:20
【问题描述】:
我有一个关于 Z3 如何逐步解决问题的问题。在这里阅读了一些答案后,我发现了以下内容:
- 使用Z3进行增量求解有两种方法:一种是push/pop(stack)模式,另一种是使用假设。 Soft/Hard constraints in Z3。
- 在堆栈模式下,z3 将忘记 global(我是对的吗?)范围内的所有学习引理,即使是在一个本地“pop”Efficiency of constraint strengthening in SMT solvers 之后
- 在假设模式下(我不知道名字,这是我想到的名字),z3 不会简化一些公式,例如价值传播。 z3 behaviour changing on request for unsat core
我做了一些比较(欢迎您询问公式,它们太大而无法放入rise4fun),但以下是我的观察:在某些公式上,包括量词,假设模式更快。在一些具有大量布尔变量(假设变量)的公式中,堆栈模式比假设模式更快。
它们是为特定目的而实施的吗?增量求解如何在 Z3 中工作?
【问题讨论】: