Skip to content

馆长递来一本魔法书。数学是万事的根基。

元数据卡

  • 前置知识:高中数学基础
  • 预计时间:50 分钟
  • 核心难度:入门
  • 完成标志:能够将自然语言命题翻译为逻辑表达式,构造真值表,理解谓词与量词的含义

你的进度

你走进数学塔,一层大厅里整齐排列着许多石门,每扇门上刻着一段文字。馆长站在第一扇门前,示意你注意看——门上的文字不是普通的句子,而是由符号组成的判断句。

你的任务

你面前有一个判断系统,输入一句话,输出真或假。"如果今天下雨,路就会湿"——这个推理为什么成立?你的任务是把人类语言的模糊表达,转换为精确的逻辑符号,让计算机能够判断"这句话是不是真的"。

本章分层

  • 必读:命题逻辑基础,真值表,谓词与量词
  • 选读:推理规则的形式化

破局 · 溯源

假设你遇到一个代码 bug。条件语句 if (a > 0 || b < 10) { ... } 中,a 和 b 的值满足预期,但代码就是不执行。你盯着条件看了三分钟——这时候你需要的不是调试器,而是逻辑。

计算机的每一个判断,归根结底都是逻辑运算。ifwhilefor 的条件表达式,数据库的 WHERE 子句,正则表达式的匹配规则——它们共享同一套底层的逻辑体系。这个体系就是命题逻辑

命题是一个能判断真假的陈述句。"2 是素数"是真命题。"5 < 3"是假命题。"你好吗?"不是命题——它无法判断真假。

命题逻辑研究如何将简单命题用逻辑联结词组合成复合命题。五个基本联结词:

名称符号含义类似代码写法
否定¬"非"!p
合取"且"p && q
析取"或"p || q
蕴含"如果...则"if (p) q
等价"当且仅当"p == q

构造一个简单例子。令 p 表示"今天是晴天",q 表示"我去跑步"。

  • p ∧ q:今天是晴天且我去跑步
  • p → q:如果今天是晴天,我就去跑步
  • ¬p ∨ q:要么不是晴天,要么我去跑步

等等——p → q 和 ¬p ∨ q 居然等价?验证一下:

当 p 为假(不是晴天),p → q 为真("如果晴天则跑步"这个承诺没有被破坏)。当 p 为真(是晴天),p → q 的真假取决于 q——如果真去跑步,承诺兑现;如果没去,承诺被打破。

这个对应关系写成表格就是真值表

p       q       p → q   ¬p ∨ q
T       T       T       T
T       F       F       F
F       T       T       T
F       F       T       T

两者完全一致。这就是逻辑等价——在不同写法之间建立可靠的桥梁。

有了命题逻辑,你能表达"p 且 q",但遇到"所有的苹果都是水果"这类句子就力不从心了。这里需要一个更强的东西:谓词逻辑

谓词是带变量的判断。IsApple(x) 表示"x 是苹果"。IsFruit(x) 表示"x 是水果"。组合起来:

  • 所有的苹果都是水果:∀x (IsApple(x) → IsFruit(x))
  • 存在一个红色的苹果:∃x (IsApple(x) ∧ IsRed(x))

∀ 是全称量词(所有),∃ 是存在量词(存在)。这是编程中最常用到的逻辑工具。类型系统的本质就是谓词逻辑——∀T 是泛型,∃T 是存在类型。

回到调试器前。条件表达式 a > 0 || b < 10 可以写成命题逻辑:p 是 a > 0,q 是 b < 10。整个条件是 p ∨ q。取反后是 ¬p ∧ ¬q(德·摩根律)。如果代码不执行,要么是 a ≤ 0 且 b ≥ 10。逻辑不能替你改 bug,但它能精确告诉你 bug 的条件。

常见陷阱

  • 将蕴含(→)误解为因果关系。"p → q" 在 p 为假时永远为真,不要求 p 和 q 有现实联系。"如果月亮是芝士做的,那么 1+1=3" 在逻辑上是真命题——前提假,结论无所谓。
  • 混淆"或"的排他和包含。"或者"在日常用语中有两种含义,计算机的 || 是包含或(至少一个为真),而"要么...要么..."是排他或(恰好一个为真)。
  • 量词作用域错误。∀x P(x) ∧ Q(x)∀x (P(x) ∧ Q(x)) 不同。前者是说"所有 x 都满足 P,且 Q(x)(可能 x 自由)"——但 Q(x) 中的 x 未受约束,这是错误的写法。

通关挑战

  • 将"如果服务器负载过高,则新的请求会被拒绝"翻译为命题逻辑表达式。
  • 构造 (p ∧ q) ∨ r 的真值表。
  • 将"每个用户都有一个唯一的 ID"翻译为谓词逻辑。

旅人笔记

逻辑是计算机判断力的数学表达。命题逻辑处理简单真值,谓词逻辑引入变量和量化——你从这里开始,建立精确思考的能力。

下一站预告:有了判断真假的工具,接下来自然想知道"什么东西属于什么集合"——集合论会给你更底层的分类能力。

Built with VitePress | Software Systems Atlas