02 命题逻辑:真与假的精密游戏
如果我们能把"说话"这件事变成纯粹的符号运算,会怎样?命题逻辑就是这个大胆想法的起点------它用符号代替语言,用规则代替直觉,让"推理"变成一场可以精确计算的游戏。
一、从一句话开始
先看几个日常生活中的句子:
"今天下雨了。"
"3 是素数。"
"地球是方的。"
这些句子有一个共同点:它们要么是真的,要么是假的 ,没有第三种可能。在命题逻辑中,我们把这样的句子叫做命题 (Proposition),也叫命题变元 或语句。
定义:命题是一个非真即假的陈述句。
注意:不是陈述句的,就不是命题。
- "你吃饭了吗?" ❌(疑问句,无真假)
- "请关门!" ❌(祈使句,无真假)
- "x + 3 = 5" ❌(含有变量,真假不确定)
第三个例子很重要------因为x的值不确定,我们无法判断真假。等后面学到谓词逻辑时,我们会回来处理这种情况。
二、命题的符号化
为了把推理变成"计算",我们需要把自然语言转换成符号。
1. 原子命题
最简单的命题(不能再拆分的)叫做原子命题(Atomic Proposition),通常用小写字母表示:
| 自然语言 | 符号表示 |
|---|---|
| 今天下雨了 | p |
| 3 是素数 | q |
| 我去图书馆 | r |
每个原子命题有一个真值(Truth Value):
- 真:T 或 1 或 ⊤
- 假:F 或 0 或 ⊥
2. 逻辑联结词
但生活中我们很少说单个命题,而是说复合的句子:
"今天下雨了,并且 我没带伞。"
"你或者 打电话,或者 发邮件。"
"如果 明天下雨,那么我就宅在家里。"
这些加粗的词就是逻辑联结词(Logical Connectives),用来把简单命题组合成复杂命题。
三、五大逻辑联结词
命题逻辑中有五个基本联结词。我们逐个理解。
1. 否定(¬,NOT)
"今天没有下雨。"
| p | ¬p |
|---|---|
| T | F |
| F | T |
否定就是"取反",最直观的一个。
2. 合取(∧,AND)
"我去图书馆 并且 借了一本书。"
符号:p ∧ q,读作"p 且 q"
| p | q | p ∧ q |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
关键理解 :只要有一个假,结果就是假。只有当全部都为真时,结果才为真。
这和编程中的 && 完全一致。
3. 析取(∨,OR)
"我喝咖啡 或者 喝茶。"
符号:p ∨ q,读作"p 或 q"
| p | q | p ∨ q |
|---|---|---|
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
关键理解 :只要有一个真,结果就是真。只有当全部都为假时,结果才为假。
⚠️ 注意:这里的"或"是相容或 (Inclusive OR),即"两者可以都发生"。这与日常中文中有时暗示"二选一"的"或"不同。如果必须二选一,那是排斥或(Exclusive OR,异或),符号是 ⊕,后面会讲。
4. 蕴含(→,IF...THEN...)
"如果 明天下雨,那么我就带伞。"
符号:p → q,读作"p 蕴含 q"或"如果 p 则 q"
| p | q | p → q |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | T |
| F | F | T |
这是最容易让人困惑的联结词。让我们仔细分析:
- p 真,q 真:我说"如果下雨就带伞",结果真下雨也真带了伞。说话算话,真!✅
- p 真,q 假:下雨了但我没带伞。食言了,假!❌
- p 假,q 真:没下雨,但我带了伞(可能为了防晒)。我没说"不下雨就不带伞",所以不算食言。真!✅
- p 假,q 假:没下雨,我也没带伞。更不算食言。真!✅
核心理解 :p → q 只在"前件真而后件假"时为假,其余情况都为真。也就是说,只有在"明明说了却没做到"时才算假。
在 p → q 中:
- p 叫做前件 (Antecedent)或假设
- q 叫做后件 (Consequent)或结论
5. 等价(↔,IF AND ONLY IF)
"三角形等边 当且仅当 三角形等角。"
符号:p ↔ q,读作"p 等价于 q"
| p | q | p ↔ q |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | T |
p ↔ q 为真,当且仅当 p 和 q 的真值相同。可以理解为"p 和 q 要么同真,要么同假"。
等价也可以用其他联结词表示:p ↔ q ≡ (p → q) ∧ (q → p)
四、真值表:逻辑的"计算表格"
把复合命题在所有可能的真值组合下的结果列出来,就是真值表(Truth Table)。
例子:证明 p → q 等价于 ¬p ∨ q
| p | q | ¬p | ¬p ∨ q | p → q |
|---|---|---|---|---|
| T | T | F | T | T |
| T | F | F | F | F |
| F | T | T | T | T |
| F | F | T | T | T |
两列结果完全相同,所以 p → q ≡ ¬p ∨ q。这就是逻辑等价!
真值表的通用方法
对于 n 个原子命题,真值表有 2ⁿ 行。
- 1 个命题:2 行
- 2 个命题:4 行
- 3 个命题:8 行
- 4 个命题:16 行
五、重言式、矛盾式与可满足式
根据真值表最后一列的结果,复合命题可以分为三类:
1. 重言式(Tautology)
在所有赋值下都为真的命题。
经典例子:p ∨ ¬p(排中律)
| p | ¬p | p ∨ ¬p |
|---|---|---|
| T | F | T |
| F | T | T |
无论 p 是真是假,p ∨ ¬p 永远为真。就像"要么下雨,要么不下雨"------废话,但绝对正确。
2. 矛盾式(Contradiction)
在所有赋值下都为假的命题。
经典例子:p ∧ ¬p(矛盾律)
| p | ¬p | p ∧ ¬p |
|---|---|---|
| T | F | F |
| F | T | F |
"既下雨又不下雨"------永远不可能。
3. 可满足式(Contingency / Satisfiable)
至少有一种赋值使其为真,也至少有一种赋值使其为假。
经典例子:p → q
| p | q | p → q |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | T |
| F | F | T |
有真有假,不是永真也不是永假。
六、逻辑等价与重要的等价式
如果两个命题在所有赋值下真值相同,就称它们逻辑等价(Logically Equivalent),记作 A ≡ B。
以下是命题逻辑中最重要的等价式,请尽量熟记:
基本律
| 名称 | 公式 |
|---|---|
| 双重否定律 | ¬¬p ≡ p |
| 幂等律 | p ∧ p ≡ p;p ∨ p ≡ p |
| 交换律 | p ∧ q ≡ q ∧ p;p ∨ q ≡ q ∨ p |
| 结合律 | (p ∧ q) ∧ r ≡ p ∧ (q ∧ r);同理 ∨ |
| 分配律 | p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r);p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r) |
德摩根律(De Morgan's Laws)⭐
| 公式 |
|---|
| ¬(p ∧ q) ≡ ¬p ∨ ¬q |
| ¬(p ∨ q) ≡ ¬p ∧ ¬q |
直观理解:"并非两者都"等于"至少有一个不";"并非任一都"等于"两者都不"。
这和集合中的德摩根律完全一致:
- (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ
- (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ
吸收律与蕴含相关
| 名称 | 公式 |
|---|---|
| 吸收律 | p ∧ (p ∨ q) ≡ p;p ∨ (p ∧ q) ≡ p |
| 蕴含等价 | p → q ≡ ¬p ∨ q |
| 逆否命题 | p → q ≡ ¬q → ¬p |
| 假言易位 | p → q ≡ ¬q → ¬p(同逆否) |
逆否命题非常重要!它说的是:"如果下雨就带伞"等价于"如果没带伞就没下雨"。这在数学证明中经常使用。
七、范式:让命题"标准化"
面对一个复杂的命题,我们可能想知道:有没有一种"标准格式",让所有等价的命题都能统一写成这种格式?答案是肯定的,这就是范式(Normal Form)。
1. 文字、短语、子句
- 文字(Literal):一个原子命题或其否定,如 p、¬q
- 短语(短语/合取式):有限个文字的合取,如 p ∧ ¬q ∧ r
- 子句(Clause/析取式):有限个文字的析取,如 p ∨ ¬q ∨ r
2. 主析取范式(Disjunctive Normal Form, DNF)
由有限个短语的析取构成。
形式:(A₁ ∧ A₂ ∧ ...) ∨ (B₁ ∧ B₂ ∧ ...) ∨ ...
每个括号内都是一组文字的"与",整体再用"或"连接。
例子:(p ∧ ¬q) ∨ (¬p ∧ q) ∨ (p ∧ q)
3. 主合取范式(Conjunctive Normal Form, CNF)
由有限个子句的合取构成。
形式:(A₁ ∨ A₂ ∨ ...) ∧ (B₁ ∨ B₂ ∨ ...) ∧ ...
每个括号内都是一组文字的"或",整体再用"与"连接。
例子:(p ∨ q) ∧ (¬p ∨ q) ∧ (p ∨ ¬q)
💡 为什么重要? 主析取范式和主合取范式是唯一的(对于给定原子命题集合)。任何命题公式都可以化成这两种范式,这在做自动定理证明、SAT求解(命题可满足性问题)时非常有用。计算机科学中的SAT Solver就是解决CNF可满足性问题的工具。
八、推理规则:从已知到未知
逻辑的最终目的是推理。从一些已知为真的前提出发,按照规则推导出新的结论。
什么是有效的推理?
如果前提全部为真能保证结论为真,那么这个推理就是有效的(Valid)。
形式化地说:如果 (p₁ ∧ p₂ ∧ ... ∧ pₙ) → q 是重言式,那么从前提 p₁, p₂, ..., pₙ 推出 q 的推理就是有效的。
常用推理规则
| 规则名 | 形式 | 说明 |
|---|---|---|
| 假言推理(Modus Ponens) | p → q, p ⊢ q | 已知"如果p则q",且已知p,推出q |
| 拒取式(Modus Tollens) | p → q, ¬q ⊢ ¬p | 已知"如果p则q",且已知¬q,推出¬p |
| 假言三段论 | p → q, q → r ⊢ p → r | 传递性 |
| 析取三段论 | p ∨ q, ¬p ⊢ q | 排除一个,剩下另一个 |
| 构造性二难 | p → q, r → s, p ∨ r ⊢ q ∨ s | 两个条件选一个 |
| 合取引入 | p, q ⊢ p ∧ q | 合并前提 |
| 合取消除 | p ∧ q ⊢ p | 拆分前提 |
| 附加律 | p ⊢ p ∨ q | 增加可能性 |
| 化简律 | p ∧ q ⊢ p | 取部分 |
推理规则 vs. 逻辑等价
- 逻辑等价(A ≡ B):A 和 B 可以互相替换,真值完全相同
- 推理规则(A ⊢ B):从 A 可以推出 B,但不一定能反过来
推理是有方向 的,等价是双向的。
九、从逻辑到电路:命题逻辑的物理化身
这可能是命题逻辑最酷的应用:
每一个逻辑联结词都对应一种数字电路门:
| 联结词 | 电路门 | 符号 |
|---|---|---|
| ¬ | NOT 门(非门) | ○ |
| ∧ | AND 门(与门) | D 形 |
| ∨ | OR 门(或门) | 弧形 |
| ⊕ | XOR 门(异或门) | 带弧线的弧形 |
复杂的命题公式可以转换成电路图,然后烧录到芯片里。CPU 中的每一个运算,本质上都是命题逻辑的物理实现!
例如:p ∧ (q ∨ r) 对应一个 AND 门,它的一个输入是 p,另一个输入是 OR(q, r) 的输出。
这就是为什么说:命题逻辑是计算机硬件的数学基础。
十、本章小结
| 概念 | 要点 |
|---|---|
| 命题 | 非真即假的陈述句 |
| 联结词 | ¬ ∧ ∨ → ↔ 五个基本运算 |
| 真值表 | 列出所有赋值下的结果,判断类型 |
| 重言式 | 永真,如 p ∨ ¬p |
| 矛盾式 | 永假,如 p ∧ ¬p |
| 逻辑等价 | 真值表相同,可互相替换 |
| 德摩根律 | ¬(p∧q) ≡ ¬p∨¬q;¬(p∨q) ≡ ¬p∧¬q |
| 范式 | DNF(短语之析取)和 CNF(子句之合取) |
| 推理规则 | 从前提有效推导结论的规则 |
思考与练习
-
判断下列语句是否是命题:
- "2 + 2 = 5"
- "请坐下。"
- "x² ≥ 0"
- "这句话是假的。"(注意:这是个悖论!)
-
构造真值表验证:p → q 与 ¬q → ¬p 是否等价?
-
用德摩根律简化:¬(¬p ∧ q)
-
将 (p → q) ∧ (q → r) → (p → r) 化为 CNF。
-
思考:为什么拒取式(Modus Tollens)是有效的推理?尝试用真值表验证。
📌 下一篇预告 :命题逻辑只能处理完整的命题,但无法处理像"所有自然数都大于0"或"存在素数大于100"这样的语句。为此,我们需要引入量词 ------全称量词 ∀ 和存在量词 ∃。这就是谓词逻辑,它让逻辑的表达能力提升了一个维度。
逻辑不是束缚思维的枷锁,而是让思维飞得更远的翅膀。 🦅