Skip to content

SMT 理论传播

SMT theory propagation · Theory propagation

从当前理论一致 trail 推出已登记原子,并用理论有效子句向布尔层解释传播原因。

条目类型
方法

形式陈述

DPLL(T) 中,设 M 是当前带符号理论文字集合且与背景理论 T 一致, 是 Boolean abstraction 中尚未赋值的理论文字。若 theory solver 能证明

T(eEe)

其中 EM,它可把 追加到 trail,并返回 explanation clause

CE=eE¬e.

CET 的所有模型中有效;当前 trail 已使其前件文字的否定全假,所以 Boolean propagation 把 视为带 reason 的普通传播。若 theory solver 发现 E 本身不一致,则 explanation 没有结论文字,成为 conflict clause eE¬e

传播通常限于 Boolean 层已经登记的原子,或求解器明确允许动态引入的原子。理论闭包可能有无限多后果,接口不要求枚举全部。Explanation 也不必是最小核心,但必须足够且有效;缩小 E 只是一项可能增强后续传播的优化。

直觉

Boolean unit propagation 只能读取已有子句,theory propagation 则让背景数学主动生成一条当前有用的子句。例如两个不等式的传递性不是 CNF 的语法规则,但理论求解器可以把它压成一个三文字 lemma;从此 SAT 引擎无需理解实数序,也能复用这项结论。

这是一座带证明回执的桥。Theory solver 不能只说“我算出 ”,而要指出 trail 中哪些文字足以推出它。回执让冲突分析穿过理论传播节点,最终学习的混合子句仍有可验证来源。

例子与边界

在线性实数算术中,令

a:(xy),b:(yz),c:(xz).

当 trail 含 a,bc 已在 Boolean 原子表中,传递性给出

TLRA(ab)c.

因此返回 explanation ¬a¬bc,并传播 c。若 trail 还含 d:(z<x),则 a,b,d 共同推出 x<x,可返回 conflict clause

¬a¬b¬d.

逐项代入即可检查:前三个原子不可能在同一实数赋值下为真。

边界之一是未登记后果。如果公式从未提及 xz,solver 可以只做一致性检查而不新建 c;这不损害完整性,只可能错过剪枝。另一个边界是浮点近似:用数值容差“似乎推出”某原子不能直接产生可靠 theory lemma,除非有区间证书或精确重检。对于非凸理论,局部信息可能只推出 a=ba=c,无法任选一个等式传播;必须让 Boolean 层分裂析取。

推论与应用

在 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。
关系图谱5 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系