🏠 总目录📚 本教程 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 为假
推理规则 给定一些公式,机械地产出新公式 RainRain → 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. 语法、语义、推理规则。推理规则是机械的,指它只看形状不看意思:看到 AA → B 就吐出 B,根本不知道 A 是什么。⭐ 这正是逻辑能自动化的原因——也因此必须追问「形状上能推的,是不是意思上真的成立」,那就是第 4 章的可靠性与完备性。

🛑 可以停在这里

走神救援

这五章(02–06)是全板块唯一可整段跳过的部分:第 7 章及之后的博弈论、匹配、公平分配、投票没有一处依赖它们;值得读的是要碰 SAT / 约束求解、形式化验证、知识图谱推理的三类人。开场谜题:三块积木 a 在 b 上、b 在 c 上,a 绿、c 非绿、b 未知,问有没有绿块直接压在非绿块上。答案一定有——b 若绿则 b 压 c,b 若不绿则 a 压 b。⭐ 妙处是你能确定它存在却指不出是哪一对:显式写下的只有 4 条事实,它们逼着一堆没写下来的东西为真,这叫隐式知识第 6 章会用存在量词把它形式化)。知识表示要解决两件事:① 无歧义地写下来(语法 + 语义,第 3、4 章)② 让机器自动推出后果(推理规则,第 5、6 章)。自然语言不行,四类病作用域歧义(「每个学生都读了一本书」——同一本 vs 各读各的,就是 ∃y∀x∀x∃y 之差,前者更强)、否定辖域歧义(「我没去考试因为我生病了」——一个读法说没去、一个说去了)、量词含糊(「没几个」根本没画线)、「或」的两义(点菜是排斥或、SQL 的 OR 是可兼或;⚠️「准确率达标或延迟达标」的验收争议,双方都能拿同一句话证明自己对)。⭐ 形式化语言的第一价值不是简洁,是唯一。 ⭐⭐ 全段骨架是语法 vs 语义:语法问「什么字符串合法」(纯机械),语义问「什么时候为真」(必须先给一个解释)——所以一个句子本身什么都不意味着一个逻辑 = 语法 + 语义 + 推理规则,推理规则只看形状不看意思(见到 AA → B 就吐 B),这既是它能自动化的原因,也逼出第 4 章的核心问题:形状上能推的,是不是意思上真的成立(可靠性 / 完备性)。

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

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

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