“在 DPLL(T) 中,新增 theory literal 只加入或收紧一个界,旧 tableau 可暖启动;回溯则恢复相应边界。求解器可在 Boolean total assignment…”
形式陈述 ​
在DPLL(T) 中,设
其中
传播通常限于 Boolean 层已经登记的原子,或求解器明确允许动态引入的原子。理论闭包可能有无限多后果,接口不要求枚举全部。Explanation 也不必是最小核心,但必须足够且有效;缩小
直觉
Boolean unit propagation 只能读取已有子句,theory propagation 则让背景数学主动生成一条当前有用的子句。例如两个不等式的传递性不是 CNF 的语法规则,但理论求解器可以把它压成一个三文字 lemma;从此 SAT 引擎无需理解实数序,也能复用这项结论。
这是一座带证明回执的桥。Theory solver 不能只说“我算出
例子与边界
在线性实数算术中,令
当 trail 含
因此返回 explanation
逐项代入即可检查:前三个原子不可能在同一实数赋值下为真。
边界之一是未登记后果。如果公式从未提及
推论与应用
在 EUF 中,同余闭包算法可对已登记等式原子传播“参数相等蕴含函数值相等”,并为 disequality 冲突重建等式链。在 LRA 中,SMT 单纯形求解器可从 tableau 行和活动边界解释界传播或不可行冲突。二者只在各自理论和解释接口下实现 theory propagation,不是可互换的通用算法。
Early propagation 往往减少 Boolean 决策,却也消耗 theory solver 时间;exhaustive theory propagation 不必在所有实例上更快。增量求解器还要让 explanation 的前提随 push/pop 正确存活。证明日志可把每条 theory lemma 交给专门 checker,随后继续使用普通 SAT checker 验证全局归结。
参考资料
- Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli, “Solving SAT and SAT Modulo Theories: From an Abstract DPLL Procedure to DPLL(T),” Journal of the ACM 53(6), 2006, pp. 937–977。
- Robert Nieuwenhuis and Albert Oliveras, “DPLL(T) with Exhaustive Theory Propagation and Its Application to Difference Logic,” CAV, LNCS 3576, Springer, 2005, pp. 321–334。
- Harald Ganzinger, George Hagen, Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli, “DPLL(T): Fast Decision Procedures,” CAV, LNCS 3114, Springer, 2004, pp. 175–188。