We study partial quantifier elimination (PQE) for propositional CNF formulas with existential quantifiers. PQE is a generalization of quantifier elimination where one can limit the set of clauses taken out of the scope of quantifiers to a small subset of clauses. The appeal of PQE is that many verification problems (e.g. equivalence checking and model checking) can be solved in terms of PQE and the latter can be dramatically simpler than full quantifier elimination. We show that PQE can be used for property generation that can be viewed as a generalization of testing. The objective here is to produce an $\mathit{unwanted}$ property of a design implementation thus exposing a bug. We introduce two PQE solvers called $\mathit{EG}$-$\mathit{PQE}$ and $\mathit{EG}$-$\mathit{PQE}^+$. $\mathit{EG}$-$\mathit{PQE}$ is a very simple SAT-based algorithm. $\mathit{EG}$-$\mathit{PQE}^+$ is more sophisticated and robust than $\mathit{EG}$-$\mathit{PQE}$. We use these PQE solvers to find an unwanted property (namely, an unwanted invariant) of a buggy FIFO buffer. We also apply them to invariant generation for sequential circuits from a HWMCC benchmark set. Finally, we use these solvers to generate properties of a combinational circuit that mimic symbolic simulation.
翻译:我们研究了存在量词命题 CNF 公式的部分量词消除 (PQE)。PQE 是量词消除的一种广义形式,其中可以限制从量词范围中取出的子句集合,以提高解法的简洁性。PQE 的魅力在于许多验证问题 (例如等效性检查和模型检查) 可以基于 PQE 解决,而 PQE 往往比全量词消除简单得多。我们展示了 PQE 能够用于属性生成,这可以看作是测试的一种推广形式。这里的目标是生成设计实现的一个不想要的属性从而暴露出一个 bug。我们介绍了两个 PQE 求解器 $\mathit{EG}$-$\mathit{PQE}$ 和 $\mathit{EG}$-$\mathit{PQE}^+$。$\mathit{EG}$-$\mathit{PQE}$ 是一种非常简单的基于 SAT 的算法。$\mathit{EG}$-$\mathit{PQE}^+$ 比 $\mathit{EG}$-$\mathit{PQE}$ 更复杂和健壮。我们使用这些 PQE 求解器来发现一个错误的 FIFO 缓冲区的不想要的属性 (即,一个不期望的不变式)。我们还应用它们来为来自 HWMCC 基准集的时序电路生成不变式。最后,我们使用这些求解器来生成一个组合电路的属性,这可以模仿符号仿真。