We study a modification of the Quantifier Elimination (QE) problem called Partial QE (PQE) for propositional CNF formulas. In PQE, only a small subset of target clauses is taken out of the scope of quantifiers. The appeal of PQE is twofold. First, it provides a language for performing $\mathit{incremental}$ computations. Many verification problems (e.g. equivalence checking and model checking) are inherently incremental and so can be solved in terms of PQE. Second, PQE can be dramatically simpler than QE. We perform PQE by adding a set of clauses depending only on unquantified variables that make the target clauses redundant. Proving redundancy of a target clause is done by derivation of a "certificate" clause $\mathit{implying}$ the former. We implemented this idea in a PQE algorithm called $\mathit{START}$. It bears some similarity to a SAT-solver with conflict driven learning. A major difference here is that $\mathit{START}$ backtracks as soon as a target clause is proved redundant (even if no conflict occurred). We experimentally evaluate $\mathit{START}$ on a practical problem. We use this problem to compare PQE with QE and QBF solving.
翻译:我们研究了“量化取消”问题的修改,称为“部分 QE (PQE) ”, 用于建议 CNF 公式。在“ PQE” 中,仅将一小部分目标条款从限定条款的范围中去除。PQE 的吸引力是双重的。首先,它为进行$\mathit{increment}$计算提供了一种语言。许多核查问题(例如等效检查和模型检查)本质上是渐进的,因此可以用PQE解决。第二,“部分 QE”(PQE)可以比QE简单得多。我们在“PQE”中只增加一组条款,这取决于使目标条款变得多余的未量化变量。一个目标条款的冗余化是通过“认证”条款的推导出的。我们在名为 $\mathitt{START} 的PQ 算法中应用了这个概念。它与以冲突驱动的解析方法有相似之处。一个主要的区别是,如果“美元\\\\\\\ StART} 与“W track Q” 问题是实际的比, Q。