Skip to content

合取范式

Conjunctive normal form · CNF

由若干析取子句之合取构成且与原公式逻辑等价的标准形。

条目类型
定义

形式陈述

命题逻辑中,文字是命题变量 p 或其否定 ¬p子句是有限个文字的析取;合取范式(CNF)是有限个子句的合取:

i=1m(j=1kiij).

范式定理:每个命题公式都与某个 CNF 公式逻辑等价。构造性证明分三步:消去 ,(改写为 ¬,,);用 De Morgan 律与双重否定律把否定推到变量跟前(得否定范式);用 的分配律 A(BC)(AB)(AC) 完成外层重组。每个子句至多含 k 个文字的 CNF 称为 k-CNF。

直觉

CNF 把任意布尔条件整理成"一份必须全部满足的约束清单":外层合取说每条约束都要过关,内层析取说每条约束给出若干可选的满足方式,至少中一个即可。这恰是约束求解的自然姿态——一个赋值违反某条约束,当且仅当它把该子句的所有文字同时弄假,于是"排查失败原因"可以逐子句进行,这正是 SAT 求解器逐子句传播与学习冲突的工作方式。与之对偶的析取范式则是"若干套完整方案任选其一"。值得记住的直观:CNF 易于"看出永真难、看出矛盾易"的对偶现象——检验 CNF 是否永真只需逐子句看是否都含互补文字对,容易;而检验其可满足性是 NP 完全的核心问题。

例子与边界

(p¬q)(qr) 已是 CNF。把 p(qr) 按分配律展开得 (pq)(pr),两步真值表即可核对等价。退化情形按约定处理:空子句(零个文字的析取)没有可为真的选项,恒假;空合取(零个子句)没有约束,恒真——这两条约定使归结证明"导出空子句即矛盾"的说法严格成立。

边界之一是规模:逐层分配可能指数爆炸,公式 (p1q1)(pnqn) 的任何等价 CNF 都需要 2n 个子句。工程上改用 Tseitin 转换:为每个子公式引入新变量并用短子句钉住其语义,输出规模与原公式线性相关。但保证随之减弱——Tseitin 结果与原公式不是逻辑等价,而是等可满足:新公式可满足当且仅当原公式可满足,其满足赋值投影回原变量恰给原公式的模型。两种保证不可混用:需要在所有赋值下逐点一致时(如电路等价性验证的规格端)等可满足的替身不能顶替等价的原式。

推论与应用

CNF 是布尔可满足性生态的标准输入格式:可满足性问题以 CNF 形态成为 Cook–Levin 定理中第一个 NP 完全问题,限制子句长度后的 3-SAT 则是复杂性归约网络的枢纽——任意 CNF 可经引入新变量拆分长子句改写为等可满足的 3-CNF。证明论方向,归结(resolution)证明系统只操作 CNF 子句,其证明长度下界是证明复杂性理论的经典课题。此外,逻辑程序设计中的 Horn 子句(至多一个正文字的子句)是 CNF 的可高效判定片段,硬件验证与规划问题的编码流水线普遍以 Tseitin 式转换落地为 CNF。

参考资料
  • Kenneth H. Rosen, Discrete Mathematics and Its Applications, 8th ed., McGraw-Hill, 2019,§1.3, propositional equivalences and normal forms。
  • Herbert B. Enderton, A Mathematical Introduction to Logic, 2nd ed., Academic Press, 2001,§1.5, Exercise 9, conjunctive normal form。
关系图谱20 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

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