We propose a new decision procedure for dependency quantified Boolean formulas (DQBF) that uses interpolation-based definition extraction to compute Skolem functions in a counter-example guided inductive synthesis (CEGIS) loop. In each iteration, a family of candidate Skolem functions is tested for correctness using a SAT solver, which either determines that a model has been found, or returns an assignment of the universal variables as a counterexample. Fixing a counterexample generally involves changing candidates of multiple existential variables with incomparable dependency sets. Our procedure introduces auxiliary variables -- which we call arbiter variables -- that each represent the value of an existential variable for a particular assignment of its dependency set. Possible repairs are expressed as clauses on these variables, and a SAT solver is invoked to find an assignment that deals with all previously seen counterexamples. Adding arbiter variables defines the values of Skolem functions for assignments where they were previously undefined, and may lead to the detection of Skolem functions by definition extraction in subsequent iterations. A key feature of the proposed procedure is that it is certifying by design: for true DQBF, models can be returned at minimal overhead. Towards certification of false formulas, we prove that clauses can be derived in an expansion-based proof system for DQBF. In an experimental evaluation on standard benchmark sets, an implementation was able to match (and in some cases, surpass) the performance of state-of-the-art DQBF solvers. Moreover, models could be generated and validated for all true instances that were solved.
翻译:我们提出一个新的依赖性量化布林公式决定程序(DQBF),该程序使用基于内插的定义提取法,在反示例制导感化合成(CEGIS)环状中计算 Skoleem 函数。在每次迭代中,一个候选人Skoleem 函数组使用SAT求解器测试正确性,该求解器要么确定已经找到模型,要么返回通用变量的配置作为反示例。确定一个反示例通常涉及改变多个存在变量的候选方和无法比较的受扶养人组。我们的程序引入了辅助变量 -- -- 我们称之为仲裁变量 -- -- 每个变量都代表其特定依赖性配置的存在变量的价值。可能进行的修理以这些变量的条款表示,并引用一个SAT求解答器来找到一个与所有以前看到的反特征交易的指定。添加校正变量可以确定Skolem D 函数的值,并且可能导致通过定义的解析来检测 Skoleem 函数。在随后的解析中,一个关键变量的参数是其存在变量的变量值变量值值值值值值值值值值值值值值值值值值值。在提议的IMFI 的计算中,一个关键程序中,一个关键值的推算的推算法的公式的推算法的公式的推算法的公式的值是,在标准的推算法的推算法路路路路路路路路路路的模型。