🏠 总目录📚 本教程 04 · 模型集
📑 本页目录(点开跳转)

04 · 模型集:连接词就是集合运算

29 分钟 | ⭐⭐ 整段逻辑最漂亮的一次视角切换


🎯 一句话

别再把公式看成「一句话」,把它看成「一堆可能世界」——于是 ¬ 变成补集、∧ 变成交集、∨ 变成并集,而「蕴含」变成一句话:小圈套在大圈里。

上一章你一直在竖着填真值表的列。这一章把表横过来看:每一行是一个世界,一个公式就是「它为真的那些行」。


🌍 一、一行真值表,就是一个可能世界

模型 ω(也叫世界)= 给每个命题符号指定真假的一种方式。n 个符号 → 2ⁿ 个世界

关键的心态转变:这 2ⁿ 个世界是固定的舞台,跟你写什么公式无关—— 公式不创造世界,只是从这堆世界里挑出一部分。

定义:$Mod(\varphi)$ = 所有让 $\varphi$ 为真的世界组成的集合。 (讲义里也写作 $M(f)$。一个公式紧凑地表示了一个模型集合。)


🔎 二、公式是筛子:手算一遍

两个符号 P、Q,4 个世界。给它们编号 w₁…w₄:

世界 P Q ¬P P ∧ Q P ∨ Q P → Q
w₁ T T F T T T
w₂ T F F F T F
w₃ F T T F T T
w₄ F F T F F T

把每一列的 T 收集起来,就是那个公式的模型集:

公式 模型集 用 P、Q 的模型集表示
P {w₁, w₂}
Q {w₁, w₃}
¬P {w₃, w₄} Mod(P) 的补集
P ∧ Q {w₁} Mod(P) ∩ Mod(Q)
P ∨ Q {w₁, w₂, w₃} Mod(P) ∪ Mod(Q)
P → Q {w₁, w₃, w₄} Mod(P) 的补集 ∪ Mod(Q) = {w₃,w₄} ∪ {w₁,w₃}

🧮 三、⭐ 连接词就是集合运算

上面那张表不是巧合。五个连接词,一个不落,全是集合运算

逻辑 集合 一句话
¬φ 补集 $\overline{Mod(\varphi)}$ 剩下的世界
φ ∧ ψ 交集 $Mod(\varphi) \cap Mod(\psi)$ 两个都得满足
φ ∨ ψ 并集 $Mod(\varphi) \cup Mod(\psi)$ 满足一个就行
φ → ψ 补集 ∪ $\overline{Mod(\varphi)} \cup Mod(\psi)$ 要么 φ 不成立,要么 ψ 成立
φ ↔ ψ 两边互相包含 两个筛子筛出同一堆世界

顺带解释了上一章那个「空真」为什么合理P → Q 的模型集里,Mod(P) 的补集被整个装了进来—— 所有「P 为假」的世界,一个都不落地满足这个蕴含。 不是逻辑学家耍赖,是集合运算长这样。

顺带定义了「等价」:两个字符串完全不同的公式,只要模型集相同,就逻辑等价(写作 ≡)。P → Q¬P ∨ Q 的模型集都是 {w₁, w₃, w₄},所以 ≡。第 5 章所有的等价变形,本质都是换写法而不换那个集合

三类公式,用集合重说一遍

类别 上一章的说法 集合的说法
恒真 每一行都 T $Mod(\varphi)$ = 全集(2ⁿ 个世界一个不少)
可满足 至少一行 T $Mod(\varphi) \neq \varnothing$
不可满足 一行都没有 $Mod(\varphi) = \varnothing$

⭐ 比上一章整齐多了:三类公式就是「全集 / 非空 / 空集」


📦 四、知识库:加一条公式 = 世界变少

知识库 KB 就是一组公式的合取。 由第三节的规则立刻可得:

$$Mod(KB) \;=\; \bigcap_{\varphi \in KB} Mod(\varphi)$$

⭐⭐ 这条公式有一个非常直白的含义:知识就是排除可能性。 你每往 KB 里加一条公式,可能世界只会变少,绝不会变多(交集只会缩)。

三个符号 P、Q、R,舞台上一共 8 个世界KB 是空的KB = {P}KB = {P, P→Q}8 个世界4 个2 个什么都没排除排除掉 P 为假的一半只剩 R 还自由知识越多 → 可能世界越少 → 能确定的事越多
⭐ 三个符号共 8 个世界。加入 P 排掉一半剩 4 个;再加入 P → Q,Q 也被钉成真,只剩 2 个(R 取真取假都行)。知识就是排除可能性——这是本章最该记住的一句话。

⚠️ 反过来也成立,而且很致命:如果 KB 自相矛盾(比如同时有 P¬P),交集就是空集——一个可能世界都不剩。这个情况的后果在下一节。


⊨ 五、⭐ 语义蕴含:整段逻辑的核心定义

$$KB \models \varphi \quad\Longleftrightarrow\quad Mod(KB) \subseteq Mod(\varphi)$$

人话KB 成立的每一个世界里,φ 也一定成立。

语义蕴含,其实是一句关于集合的话所有可能世界(2ⁿ 个)Mod(KB)Mod(φ)KB ⊨ φMod(KB) ⊆ Mod(φ)KB 为真的每个世界里,φ 也一定为真。所以小圈不许有任何一点露在大圈外面——露出来的那个世界,就是一个反例。
⭐ 一张图记住蕴含:小圈套在大圈里 = KB ⊨ φ。要推翻一个蕴含,你只需要找出一个落在小圈里、却掉在大圈外的世界——那就是反例。这也解释了为什么反驳一个断言,举一个例子就够了。

🖐️ 手算一次

KB = {P, P → Q},问 KB ⊨ Q 吗? 用第二节那张表:

⭐ 你刚刚用集合验证了假言推理(Modus Ponens)。这就是「从 P 和 P → Q 推出 Q」在语义层面的全部内容。

💥 矛盾的知识库能证明一切

上一节说 KB 自相矛盾时 $Mod(KB) = \varnothing$。而空集是任何集合的子集,于是:

$$Mod(KB) = \varnothing \;\Longrightarrow\; KB \models \varphi \quad\text{对任何 } \varphi \text{ 都成立}$$

⚠️ 这叫「爆炸原理」(ex falso quodlibet):自相矛盾的知识库不是「有一处错」,而是「整个废了」——它能证明「1+1=3」,也能证明它的否定。 ⭐ 所以规则引擎、本体库、约束系统上线前都要先做一致性检查——矛盾会让所有结论同时失去意义,而系统不会报错


🔀 六、⊢ 和 ⊨ 是两条完全不同的路

⊢(可推导 / provability) ⊨(蕴含 / entailment)
属于 语法 语义
定义 存在一串机械的推导步骤,从 KB 走到 φ KB 为真的每个世界里 φ 都真
怎么验证 摆符号,按规则一步步变形 查世界,看 2ⁿ 个模型
机器友好吗 非常(就是符号替换) ⚠️ 要遍历指数多的世界

注意这里的不对称:我们想要的是 ⊨(真理),但机器能做的是 ⊢(符号操作)。 所以必须问一个问题:这两个东西是同一个东西吗?


🎯 七、可靠性与完备性

性质 形式 人话 违反的后果
可靠(sound) KB ⊢ φ ⟹ KB ⊨ φ 推出来的都是真的 💀 系统会输出错误结论且理直气壮
完备(complete) KB ⊨ φ ⟹ KB ⊢ φ 真的都能推出来 结论是对的但推不出来,系统「不知道自己知道」

记忆法可靠 = 不说谎,完备 = 不遗漏。 两者都要,但如果只能要一个——可靠性是底线。 一个不可靠的推理器比没有推理器更糟:它会污染下游所有依赖它的判断。

⚠️ 一个具体的不完备例子

只用假言推理这一条规则,够不够?

KB = {p, p → q, q → r}

KB ⊨ p → r 是成立的(KB 的模型只有 p=q=r=T 那一个,而 p → r 在那里为真)。 ⭐ 假言推理推不出 p → r——它只会从「A 和 A→B」造出 B,永远造不出一个新的箭头

所以 MP 是可靠的,但不完备。第 5 章要换一条更强的规则——分辨率,它配上反证法之后就够用了。

可判定性

命题逻辑是可判定的:真值表法是一个必定停机的机械过程,问什么都能答「是」或「否」。 ⚠️ 代价还是那个 2ⁿ(上一章第七节)。⭐ 到第 6 章你会看到,一阶逻辑连这个都保不住


🔗 这一章连到哪里

去哪 为什么
05 · 推理与分辨率 ⭐ 那一章的反证法为什么合法,答案就是本章第五节的集合命题:KB ⊨ φ ⟺ Mod(KB) 和 Mod(¬φ) 的交是空的
03 · 命题逻辑 回去看那个「读法 B 比读法 A 更强」——现在你知道它的准确含义是 Mod(B) ⊆ Mod(A)
智能体工程教程 11 · 检索与 RAG ⚠️ 同一个词,两种东西:RAG 的「知识库」是一堆文档,靠相似度召回,答案可能不在里面;逻辑的知识库是一组约束,靠蕴含取结论,答案必然成立。⭐ 搞混这两者是 LLM+知识库项目最常见的期望错位
数学原理 11 · 没有免费的午餐 ⭐ 同一个几何图像:那一章说「不加假设就学不到东西」,本章说「不加公式就排除不掉世界」——归纳偏置之于假设空间,正如 KB 之于可能世界

✅ 检查点

  1. 「模型 / 世界」是什么?n 个符号有多少个?为什么说「公式不创造世界」?
  2. 五个连接词分别对应哪个集合运算?用集合的说法解释「空真」为什么合理。恒真 / 可满足 / 不可满足用集合怎么说?
  3. Mod(KB) 怎么算?为什么说「知识就是排除可能性」?三符号那个例子里三个数字分别是多少?
  4. 写出语义蕴含的定义。要推翻一个蕴含,需要找到什么?
  5. 手算:KB = {P, P → Q},验证 KB ⊨ Q。
  6. 矛盾的知识库会怎样?为什么说它「不是有一处错,而是整个废了」?
  7. ⊢ 和 ⊨ 分别属于语法还是语义?可靠性和完备性各是什么,哪个是底线?
  8. 只用假言推理为什么不完备?给出那个具体的反例。
👀 答案
  1. 模型(世界)= 给每个命题符号指定真假的一种方式,n 个符号有 2ⁿ 个。说公式不创造世界,是因为这 2ⁿ 个世界是固定的舞台,跟你写什么公式无关——公式只是从中挑出一部分。
  2. ¬ = 补集、∧ = 交集、∨ = 并集、→ = 补集 ∪、↔ = 互相包含。空真:P → Q 的模型集里 Mod(P) 的补集被整个装了进去,所以所有「P 为假」的世界一个不落地满足它。三类公式:恒真 = 全集、可满足 ≠ ∅、不可满足 = ∅
  3. Mod(KB) = KB 里所有公式模型集的交集;交集只缩不涨,每加一条公式可能世界只会变少。三符号例子:8 个 → 4 个 → 2 个(最后只剩 R 自由)。
  4. KB ⊨ φ ⟺ Mod(KB) ⊆ Mod(φ)。要推翻它,只需找到一个落在 Mod(KB) 里、却不在 Mod(φ) 里的世界——⭐ 一个反例就够
  5. Mod(P) = {w₁, w₂};Mod(P → Q) = {w₁, w₃, w₄};交集 Mod(KB) = {w₁};Mod(Q) = {w₁, w₃};{w₁} ⊆ {w₁, w₃} ✅ 成立。⭐ 这就是假言推理的语义内容。
  6. Mod(KB) = ∅,而空集是任何集合的子集,所以 KB 蕴含一切公式(爆炸原理)。说它整个废了,是因为它能同时证明一个命题和它的否定,所有结论一起失去意义,而系统不会报错
  7. ⊢ 属于语法(摆符号,机器友好),⊨ 属于语义(查 2ⁿ 个世界)。可靠 = 推出来的都是真的(不说谎);完备 = 真的都能推出来(不遗漏)。⭐ 可靠性是底线——不可靠的推理器会理直气壮地输出错误结论并污染下游。
  8. 因为假言推理只会从「A 和 A → B」造出 B,永远造不出一个新的箭头。反例:KB = {p, p → q, q → r},MP 得到 qr 就到头,但 KB ⊨ p → r(KB 的模型只有 p=q=r=T 那一个)。所以 MP 可靠但不完备

🛑 可以停在这里

走神救援

⭐⭐ 本章只做一件事:把公式从「一句话」翻译成「一堆可能世界」模型(世界)= 一次真值指派,n 个符号有 2ⁿ 个世界,这是固定舞台;公式只是筛子,$Mod(\varphi)$ = 让它为真的那些世界。于是五个连接词全是集合运算¬ = 补集、∧ = 交集、∨ = 并集、→ = 补集 ∪、↔ = 互相包含——⭐ 顺带解释了「空真」:P → Q 的模型集整个装下了 Mod(P) 的补集,P 为假的世界一个不落。三类公式也整齐了:恒真 = 全集、可满足 = 非空、不可满足 = 空集知识库 KB = 一组公式的合取,所以 Mod(KB) = 各模型集的交集;交集只缩不涨,⭐⭐ 知识就是排除可能性——三个符号 P、Q、R 共 8 个世界,加 P4 个,再加 P → Q 只剩 2 个。⭐⭐ 核心定义:KB ⊨ φ ⟺ Mod(KB) ⊆ Mod(φ),图上就是小圈套在大圈里;要推翻它只需找一个落在小圈外的世界(一个反例就够)。手算过一次:KB = {P, P→Q} 的模型是 {w₁},Mod(Q) = {w₁, w₃},包含成立 → KB ⊨ Q,这正是假言推理的语义版。⚠️ 爆炸原理:KB 自相矛盾 → Mod(KB) = ∅ → 空集是任何集合的子集它蕴含一切;所以矛盾的知识库不是有一处错,是整个废了,而且系统不会报错——这就是一致性检查的意义。⊢ 是语法(摆符号、机器友好)、⊨ 是语义(查 2ⁿ 个世界):我们想要的是 ⊨,机器能做的是 ⊢,于是必须问它们对不对得上——可靠 = 推出来的都真(不说谎)完备 = 真的都能推出来(不遗漏),⭐ 可靠性是底线。⚠️ 只用假言推理是不完备的:KB = {p, p→q, q→r} 能推出 q、r 就到头,但 KB ⊨ p→r——MP 永远造不出一个新的箭头。命题逻辑可判定(真值表必定停机),代价仍是 2ⁿ。

下一节 👉 05-推理与分辨率.md ⭐⭐

去那里的理由:本章证明了假言推理不够用。05 换上分辨率这一条规则, 再配上反证法——而反证法之所以合法,靠的正是本章第五节那个集合命题。

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