Skip to content

原则Principle

分类讨论证明

施工中 · 内容逐步修订

Proof by cases · Exhaustion

选取覆盖所有可能的条件,并在每个条件下证明同一个结论。

形式陈述 ​

设要在共同假设 H 下证明命题 P。分类讨论需要两项证据:首先,由 H 能推出 C1∨⋯∨Ck;其次,在每个 H∧Ci 下都能推出同一个结论 P。这里 ∨ 是命题逻辑中的“或”,表示至少一个分支成立。

因此,分类不是任意列举几个例子,而是建立一组覆盖全部可能的条件。分支可以重叠;它们是否互斥不影响推理有效性。只有覆盖性和所有分支的证明都完成,才能撤销分支假设,得到 H⇒P。

直觉

一个结论可能没有对所有输入都同样方便的证明。遇到绝对值时,正数与负数的公式不同;遇到整数整除时,不同余数带来不同表达式。分类把一个问题拆成几条较短的路线,每条路线都通向同一终点。

分支条件是暂时增加的信息。例如在“n 为偶数”分支里可以写 n=2k,但出了这个分支便不能继续沿用这一表示。若一条证明最后还依赖某个未撤销的分支条件,它只证明了条件结论,并未完成全体情形。

例子与边界

奇偶分类为何覆盖全部整数 ​

证明每个整数 n 的 n(n+1) 都是偶数。任意整数除以 2 的余数只能为 0 或 1,所以只有以下两类:

  • 若 n=2k,则 n(n+1)=2k(2k+1),是 2 的整数倍。
  • 若 n=2k+1,则 n(n+1)=(2k+1)(2k+2)=2(2k+1)(k+1),仍是 2 的整数倍。

两个分支中的 k 均为整数,负整数也包括在内;例如 −3=2(−2)+1。证明的覆盖范围由除法的余数性质保证,并非由检查几个正整数保证。

按余数分类 ​

符号 3∣m 表示 m 是 3 的整数倍。要证明 3∣n3−n,写 n=3k+r,其中 r 为 0,1,2 之一。为什么只算余数就足够?展开得

(3k+r)3−(3k+r)=3(9k3+9k2r+3kr2−k)+(r3−r).

前半部分已经是 3 的倍数,所以只剩 r3−r 需要检查:

03−0=0,13−1=0,23−2=6.

三种结果都被 3 整除,连同前半部分便证明了整个表达式被 3 整除。也可将 n3−n 写成三个连续整数的乘积 (n−1)n(n+1),再指出其中必有一个是 3 的倍数;后一条路线把分类隐藏在“必有一个”中。

重叠不碍事,遗漏才会失效 ​

证明实数恒等式 |x|2=x2 时,可分为 x≥0 与 x≤0。前一支由 |x|=x 得出,后一支由 |x|=−x 得出。0 同时出现在两支中,但两支都证明了目标,所以重叠不影响结论。这里不是计数,不存在重复计算导致答案翻倍的问题。

最常见的漏洞是漏边界:按正负讨论实数却漏掉 0,或按模 m 分类漏掉一个余数。另一种漏洞是各分支证明了不同结论;例如一个分支得到 P,另一个只得到 Q,至多能合并为 P∨Q,不能直接宣称 P。

推论与应用

自然演绎中的析取消去规则形式化了这个过程:已知一个析取式,并从每个析取支分别推出目标,就可以推出目标。反过来,只有分支证明而没有析取前提,并不能启动这条规则。

反证法和归纳证明中也可嵌入分类。验证算法时,程序的分支条件经常给出分类标准;证明者仍须检查输入是否全部被覆盖、各分支是否保持同一目标性质。分类过细只会重复劳动,通常应按真正改变论证方式的条件分组。

参考资料
  • Richard Hammack, Book of Proof, 第三版,2018,§§4.4–4.5 “Using Cases”与“Treating Similar Cases”,印刷页124–125。作者公开PDF。
  • P. D. Magnus、Tim Button、Robert Trueman、Richard Zach,forall x: Calgary,Fall 2025 在线版,Chapter 17 “Basic rules for TFL”;条件引入、否定与分支假设的解除。
关系图谱1 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组