🏠 总目录📚 本教程 02 · 为什么需要逻辑 ← →
📑 本页目录(点开跳转)

02 · 为什么需要逻辑

⏱ 29 分钟 | ⭐ 形式化不是为了装,是因为不形式化就会歧义


🎯 一句话

知识表示要解决的是「把一件事写下来,让机器能算出它的后果」;自然语言写不下来,因为同一句话往往有两个互相矛盾的意思。

这一章不讲任何公式。它只做一件事:让你在动手学符号之前,先亲眼看到「不形式化会死在哪」。


🚪 一、先说清楚:这五章你可以整段跳过

⭐ 第 2 到第 6 章是这套教程唯一一段「可以整段跳过」的内容。 第 7 章(偏好与效用)以及之后的全部博弈论、匹配、公平分配、投票,没有一处依赖这五章。 你想直接学博弈论,现在就可以跳到 07-偏好与效用,不会有任何缺口。

那什么人应该读?

情况 建议
只想搞懂纳什均衡 / 拍卖 / 投票 跳过,直接去第 7 章
要碰 SAT 求解器 / 约束求解(排班、调度、验证工具的内核) ⭐ 读,第 3–5 章就是地基
要做形式化验证(协议、智能合约、编译器) ⭐ 读,尤其第 5 章的反证法
要做知识图谱推理 / 规则引擎 / Datalog ⭐ 读,重点是第 6 章的谓词和量词
想知道「LLM 的『推理』和逻辑的『推理』是不是一回事」 读第 4、5 章,答案是否定的

⭐ 这五章是工具的说明书,不是问题的答案。 读完你不会多懂一点博弈论, 但你会多一套把「模糊的争论」压成「机械可判定的计算」的手法。


🧩 二、先卡在一个谜题上

在讲任何定义之前,先看一个题。建议你真的花两分钟想一下,因为这一整段逻辑的意义,就藏在你想它的过程里。

三块积木叠成一摞:a 在 b 上面,b 在 c 上面。 已知:最上面那块(a)是绿的,最下面那块(c)不是绿的。 关于中间那块 b,什么都没告诉你。

问:有没有一块绿积木,直接压在一块非绿积木上面?

大多数人的第一反应是「不知道,因为 b 的颜色没给」。但正确答案是 有,一定有:

b 只有这两种可能,两种都成立,所以结论必然成立。

⭐ 注意这个结论的奇怪之处:你能确定「存在这样一对积木」,却指不出它到底是哪一对。

⭐ 这就是「隐式知识」:显式写下的只有四条事实, 但这四条逼着很多别的东西也为真,而那些东西一条都没被写下来过。 知识表示与推理这个方向,全部工作就是把「逼着为真」变成机器能算的东西。

⚠️ 你现在还没有工具把它写成公式。这道题会在第 6 章最后被形式化并证明——那时你需要的是一阶逻辑的「存在量词」。先把它记住。


📚 三、知识表示到底要解决什么

一个基于知识的 agent,核心是一个知识库(Knowledge Base,KB):

于是就有两个问题,逻辑地基这五章(第 2–6 章)全在回答它们:

问题 归谁管
① 怎么把知识写下来,写得没有歧义? 语法 + 语义(第 3、4 章)
② 写下来之后,能不能让机器自动推出新事实? 推理规则(第 5、6 章)

⭐ 把两个问题分开,是整段逻辑的第一个结构性决定。写下来是一回事,算出后果是另一回事——它们由完全不同的机制负责,而且第 4 章会告诉你,这两条路居然能对得上,这件事一点也不显然。


🗣️ 四、自然语言差在哪:四种歧义

为什么不直接用中文/英文写知识库?因为自然语言歧义、含糊、且依赖上下文。看四个例子,它们分别代表四类不同的病。

① 作用域歧义(谁管谁)

「每个学生都读了一本书。」

两个意思:

⭐ 这两个说法逻辑强度完全不同(第一个能推出第二个,反过来不行)。到了第 6 章你会看到它们是 ∃y∀x 和 ∀x∃y 的区别——只是两个量词换了个顺序。

② 否定辖域歧义(「不」管到哪为止)

「我没去考试,因为我生病了。」

同一句话,一个说「没去」,一个说「去了」。否定符号到底罩住了哪一段,中文没有语法标记来指明。

③ 量词含糊

「没几个学生及格。」

「没几个」是多少?少于一半?少于 10%?少于 5 个人?这不是歧义(两个明确的意思),而是含糊(根本没有明确的意思)——两个人可以就同一句话争到底,因为句子本身没画线。

④ 「或」的两义

「汤或者沙拉,二选一。」

⚠️ 这一条在工程里最贵。验收标准里写「准确率达标 或 延迟达标」,甲方读成「两个都要」、乙方读成「满足一个就行」——⭐ 双方都能拿着同一句话证明自己是对的,因为那句话确实同时支持两种读法。

⭐ 四种病归成一句话:自然语言的句子不能唯一确定它的意思。 而一个知识库如果连「它到底说了什么」都不唯一,那么「它能推出什么」当然也不唯一。 形式化语言的第一价值不是简洁,是唯一。


⚖️ 五、语法 vs 语义

这一组区分是整段逻辑的骨架,第 3–6 章每一章都会分成这两半来讲,所以在这里说清楚。

语法(Syntax) 语义(Semantics)
回答什么问题 什么样的字符串是合法的句子? 这个句子说的是什么?什么时候它为真?
关心什么 形状、拼写、括号配没配对 真和假
例子 $x \lt 4$ 是一个合法的算术表达式;x 4 < 不是 $x \lt 4$ 为真,当且仅当 x 这个数确实小于 4
谁能做 纯机械,写个 parser 就行 需要先给出一个解释:x 指哪个数

⭐ 最关键的一句话:

⭐ 一个句子本身什么都不意味着。 要让它有意义,你必须额外提供一个解释(interpretation)—— 说清里面每个符号指的是什么。

这有极其实际的后果:同一串符号,换个解释,真值就变了。∀x (P(x) → Q(x)) 在「x 是狗、P 是爱捡球、Q 是开心」下是一句话,在「x 是学生、P 是来上课、Q 是及格」下是另一句话,符号本身对此毫不知情。

⚠️ 初学者最容易犯的错:拿到公式就问「它对不对」。这个问题在语法层面没有答案。正确的问法是「在哪些解释下它为真」——那是第 4 章整章的内容。


🔩 六、一个逻辑由哪三样东西构成

任何一种逻辑,都是这三件东西打包在一起:

成分 它给你什么 例子
语法 一套规则,划定哪些字符串是合法公式 Rain → Wet 是公式;Rain Wet → 不是
语义 对每个公式,指定它在哪些「世界」里为真 「下雨且不湿」这个世界,让 Rain → Wet 为假
推理规则 给定一些公式,机械地产出新公式 从 Rain 和 Rain → Wet,得到 Wet(这条规则叫假言推理 / Modus Ponens)

⭐ 注意第三行的机械二字。推理规则不看意思,只看形状:它看到「A」和「A 箭头 B」这两个形状摆在面前,就吐出「B」。它根本不知道 Rain 是什么。

⭐ 这就是整件事之所以能自动化的原因: 意思(语义)决定了什么是对的,形状(语法)决定了机器能做什么。 如果这两者对不上,机器算出来的就是垃圾。 它们到底对不对得上——这是第 4 章的核心问题,叫「可靠性」和「完备性」。

顺带回答一个问题:为什么不用编程语言

同一件事三种写法:自然语言「偶数都能被 2 整除」/编程语言 def even(x): return x % 2 == 0/逻辑语言 ∀x. Even(x) ⟹ Divides(x, 2)。

编程语言也精确,但它描述的是怎么算;逻辑语言描述的是什么为真。⭐ 它不告诉你怎么算——正因为如此,才轮得到「推理机」去替你算。


🔗 这一章连到哪里

第 3、4 章是「表示」,第 5、6 章是「推理」——正好对应第三节那两个问题。

去哪 为什么
07 · 偏好与效用 ⭐ 想直接学博弈论就从这里进,本段五章不是它的前置
03 · 命题逻辑 最小的形式化语言:第四节那些歧义句,到那里会被强行拆成两个真值表不同的公式
04 · 模型集 ⭐ 换一个视角看公式——一个公式就是一个世界的集合,第六节那个「形状能不能对上意思」的问题在那里得到回答
05 · 推理与分辨率 一条规则打天下:反证法推到空子句,能在纸上手算
06 · 一阶逻辑 加进对象、谓词、量词,第二节那个积木谜题会在那里被解开
数据这一关 03 · 数据契约 ⭐ 同一个动机的工程版:那一章讲的「把口头约定写成机器能检查的 schema」,动机和本章第四节完全一样——含糊的约定会在验收时炸
智能体工程教程 03 · 提示词工程 提示词全是自然语言,那一章的许多技巧(举例、给格式、划边界)本质上都是在消歧——去看看同一个问题在 LLM 时代长什么样

✅ 检查点

  1. 这五章什么情况下该读、什么情况下该跳过?跳过会不会影响后面的博弈论?
  2. 三块积木那道题结论是什么?为什么「b 的颜色没给」不妨碍得出结论?「能确定存在却指不出是哪一对」说明了什么?
  3. 「每个学生都读了一本书」有哪两种意思?哪一种更强(能推出另一种)?
  4. 自然语言的四类毛病分别是什么?其中哪一条不是「两个明确的意思」而是「根本没有明确的意思」?
  5. 语法和语义各回答什么问题?为什么说「一个句子本身什么都不意味着」?
  6. 一个逻辑由哪三样东西构成?为什么说推理规则是「机械」的,这件事为什么重要?
👀 答案
  1. 想搞懂 SAT 求解 / 形式化验证 / 知识图谱推理的人该读;只想学纳什均衡、拍卖、投票的人可以整段跳过,直接去第 7 章。不影响——第 7 章及之后没有一处依赖第 2–6 章。
  2. 结论是一定存在一块绿积木直接压在非绿积木上:b 若为绿 → b 压 c(c 非绿);b 若非绿 → a 压 b(a 是绿的)。b 只有这两种可能、两种都成立,所以不妨碍。「能确定存在却指不出是哪一对」说明知识库里有隐式知识:显式写下的只有 4 条事实,但它们逼着很多没写下来的东西为真。
  3. ①有某一本特定的书,所有人都读了它;②每个人各读各的。第一种更强——它能推出第二种,反过来不行。到第 6 章会看到它们只差量词顺序:∃y∀x 与 ∀x∃y。
  4. ①作用域歧义 ②否定辖域歧义(「我没去考试因为我生病了」——一个读法说没去、一个说去了)③量词含糊(「没几个」)④「或」的两义(排斥或 vs 可兼或)。第三条是含糊不是歧义:不是有两个明确的意思,而是根本没画线。
  5. 语法问「什么字符串是合法句子」(形状,纯机械,parser 就能做);语义问「什么时候为真」(真假,必须先给一个解释)。说句子本身什么都不意味着,是因为必须额外提供解释才知道符号指什么——同一串 ∀x (P(x) → Q(x)) 换个解释就是另一句话。
  6. 语法、语义、推理规则。推理规则是机械的,指它只看形状不看意思:看到 A 和 A → B 就吐出 B,根本不知道 A 是什么。这正是逻辑能自动化的原因——也因此必须追问「形状上能推的,是不是意思上真的成立」,那就是第 4 章的可靠性与完备性。

🛑 可以停在这里

⚡ 走神救援

先记住这几件事

下一节 👉 03-命题逻辑.md

去那里的理由:本章说了「必须形式化」,03 给出最小的那个形式化语言—— 而且第一个例子就是把本章第四节那种歧义句翻成公式,你会看到两种读法变成两个真值表不同的公式。

打卡记录保存在你的浏览器里,首页能看到总进度