逻辑是「可靠推理的形式化」:给定前提,什么样的结论必然成立。命题逻辑处理最小单位(命题:非真即假的陈述句),它是数字电路的数学(计组课第 3 章的与或非门)、SQL 的 WHERE 条件、编程语言的布尔类型的共同祖先。本章的目标:会算真值表、会判等价、会判断推理有效——并且知道这些技能在硅片里怎么物理实现。
命题 = 可判定真假的陈述句(「3 是素数」是;「2 大于 3」是,虽然假;「这题好难啊」不是)。五个联结词把命题组合成复合命题:
| 记号 | 读法 | 真值规则 | 编程对应 |
|---|---|---|---|
| ¬p | 非 p | 取反 | !p |
| p ∧ q | p 且 q | 全真才真 | && |
| p ∨ q | p 或 q | 有真即真 | || |
| p → q | p 蕴含 q | 前真后假才假 | 无直接对应!(见 2.2) |
| p ↔ q | 当且仅当 | 同真同假 | == |
真值表是命题逻辑的「一切裁决工具」:n 个变元的公式有 2ⁿ 行。三个变元 8 行,画熟三元的就够用了。
p → q 只在「p 真而 q 假」时为假。三个推论值得单独想通:
两个公式在一切赋值下同真值 = 等价(p ≡ q)。常用等价式(全部可用真值表验证):
德摩根律的实际杀伤力:写条件的否定时人脑最爱犯的错。!(a && b) 不是 !a && !b 而是 !a || !b;「不是(男且老)」=「女或年轻」。SQL 优化、if 条件化简、电路化简,全靠它。
永真式(tautology):一切赋值下为真。推理的核心定理 p→q、p ⊢ q(假言推理)的合法性,验证方式就是检查 (p∧q)→q 是永真式。可满足性(SAT):是否存在使其为真的赋值——SAT 求解器是工业界的重炮(芯片验证、软件测试),P vs NP 的主角,知道它的重要性即可。
推理规则 = 从真前提保真地推出结论的模式:
| 规则 | 形式 | 名字 |
|---|---|---|
| p, p→q ⊢ q | 肯定前件 | 假言推理(MP) |
| ¬q, p→q ⊢ ¬p | 否定后件 | 拒取式(MT) |
| p→q, q→r ⊢ p→r | 传递 | 假言三段论 |
| p∨q, ¬p ⊢ q | 析取三段论 | —— |
两个著名谬误(考试和争论都爱出):肯定后件(q 真,p→q,推 p——「他发烧了,发烧则感冒,所以他感冒」?发烧原因多了)与否定前件(¬p,p→q,推 ¬q——「不发烧,发烧则感冒,所以没感冒」?不吃退烧药也能感冒)。识别这两类错误,是逻辑学给你的第一件防身武器。
把 {真, 假} 换成 {1, 0},∧∨¬ 换成 AND/OR/NOT 门,命题逻辑就变成了布尔代数:数字电路(计组课第 3 章的全加器、第 5 章的控制器译码)就是命题公式的物理实现。一组真值表 → 卡诺图化简 → 门电路,这条流水线在数字电路课练,数学基础全在本章。范式(析取范式 DNF:与项的或;合取范式 CNF:或项的与)是「任意布尔函数都能标准写出」的证明:每个使公式为真的赋值对应一个最小项,DNF 就是把它们或起来——「真值表和公式一一对应」,这就是电路综合的第一原理。