MathLabs

数学史与数学哲学

形式主义、直觉主义与柏拉图主义

关于数学本质的三种对立哲学:柏拉图主义认为数学对象独立于人类而存在(哥德尔的观点);希尔伯特的形式主义将数学归约为可用有限方法证明的一致符号操作;布劳威尔的直觉主义拒绝无限制的排中律 P∨¬PP \vee \neg P,要求给出构造性见证。我们用非构造性与构造性两种方式证明经典的 22\sqrt{2}^{\sqrt{2}} 无理性谜题,并说明哥德尔–柯尔莫哥洛夫翻译如何将经典逻辑嵌入直觉主义逻辑。

直观数字究竟是何种事物?

设想三位数学家争论数字 77 是否"存在"。柏拉图主义者说:是的,77 存在于抽象的数学对象领域中,就像数字 33 在任何人数到它之前就已存在一样真实——我们发现定理,正如天文学家发现行星一样。形式主义者说:数学是一种符号与规则的游戏,如同国际象棋;"77"之所以是有意义的字符串,仅因为它遵守算术公理,数学实际上研究的是哪些符号串可以从哪些符号串推导出,而非某个神秘领域。直觉主义者说:数学对象只有当我们能在头脑中逐步构造它时才存在;P∨¬PP \vee \neg P 并非自动成立,因为对某些命题 PP,我们可能永远既没有证明 PP 的构造,也没有反驳它的构造。

以互联节点展示柏拉图主义、形式主义、直觉主义的交互图
概念图:柏拉图主义、形式主义、直觉主义是在存在性、证明与真理上意见相左的三个节点——拖动查看每种哲学如何与逻辑学、计算和集合论相连。

中学排中律

定义: 古典逻辑与直觉主义逻辑

在古典逻辑中,P∨¬PP \vee \neg P 是一条公理:对任意命题 PP,要么 PP 成立要么 ¬P\neg P 成立——没有第三种可能,且无需证明就知道哪一个成立。在直觉主义逻辑(布劳威尔提出,海廷形式化)中,P∨QP \vee Q 的证明必须实际给出 PP 的证明或 QQ 的证明;因此 P∨¬PP \vee \neg P 只有在我们真正能对具体的 PP 判定哪一支成立时才被接受。这不仅仅是形式上"古典逻辑减去一条公理"——它改变了哪些定理可证,更重要的是,使每个证明都具有计算意义:∃x.ϕ(x)\exists x. \phi(x) 的构造性证明必须包含一个生成见证 xx 的算法。

P∨¬PP \vee \neg P

这条公式 P∨¬PP \vee \neg P 在古典逻辑中被无条件接受,但在直觉主义逻辑中只能逐案接受。对每个 PP,直觉主义确实可证明的是更弱的双重否定形式 ¬¬(P∨¬P)\neg\neg(P \vee \neg P)——将在下方定理2中证明。

¬¬(P∨¬P)\neg\neg(P \vee \neg P)
三大学派比较
问题柏拉图主义(哥德尔)形式主义(希尔伯特)直觉主义(布劳威尔)
数字是否存在?存在,处于独立于心智的抽象领域无关紧要——只有符号串和推导规则重要只有当我们能在心智中构造它们时
P∨¬PP \vee \neg P 是否总成立?是——真理是客观的,独立于证明是,作为一致系统内的形式公理否——只有构造出见证或反驳时才成立
什么使证明有效?正确追踪客观数学真理从公理出发的有限、可机械验证的推导生成对象的显式构造/算法

大学希尔伯特纲领与哥德尔的一击

希尔伯特提议通过以下方式确保整个数学:(1)将其形式化为由公理和机械推理规则组成的系统 TT,(2)仅使用有限方法(不涉及无限对象,不涉及已完成的无限总体——形式主义者与直觉主义者都能接受的推理)证明 TT 是一致的:永远不能既推出 ϕ\phi 又推出 ¬ϕ\neg\phi,特别是永远不能推出 0=10 = 1。哥德尔第二不完备定理(1931年)证明了这对任何包含算术的一致系统 TT 都不可能:TT 无法仅用能在 TT 自身内形式化的方法证明 Con(T)\text{Con}(T)。希尔伯特具体的有限一致性纲领因此夭折,但作为基础立场的形式主义存活了下来——证明论(根岑用直到 ε0\varepsilon_0 的超限归纳法证明算术一致性,超出严格有限主义)以及现代证明助手(Coq、Lean、Isabelle)都是它的直系后代。

存在无理数 a,ba, b 使得 ab∈Qa^b \in \mathbb{Q}。

为什么成立?

此定理是课堂上展示形式主义/柏拉图主义与直觉主义分歧的最尖锐例子:古典(非构造性)证明通过对一个未判定命题进行分情形来确立存在性,却从不告诉你哪种情形是真实的,而构造性证明给出显式的值。

证明

古典(非构造性)证明。 考虑 22\sqrt{2}^{\sqrt{2}}。由排中律,要么 22∈Q\sqrt{2}^{\sqrt{2}} \in \mathbb{Q} 要么 22∉Q\sqrt{2}^{\sqrt{2}} \notin \mathbb{Q}——我们不需要知道是哪一种。

情形1: 若 22∈Q\sqrt{2}^{\sqrt{2}} \in \mathbb{Q},取 a=22,b=2a = \sqrt{2}^{\sqrt{2}}, b = \sqrt{2}:两者都是无理数(2\sqrt{2} 是无理数,由 p/q=2p/q=\sqrt 2 中 p,qp,q 奇偶性的经典反证法可得),而根据本情形假设 ab=22a^b = \sqrt{2}^{\sqrt{2}} 是有理数。得证。

情形2: 若 22∉Q\sqrt{2}^{\sqrt{2}} \notin \mathbb{Q},取 a=22a = \sqrt{2}^{\sqrt{2}}(由本情形假设为无理数)与 b=2b = \sqrt{2}(无理数)。则 ab=2a^b = 2:ab=(22)2=22=2a^b = (\sqrt{2}^{\sqrt{2}})^{\sqrt{2}} = \sqrt{2}^{2} = 2。因为 2∈Q2 \in \mathbb{Q},得证。

无论哪种情形,我们都给出了无理数 a,ba,b 使 ab∈Qa^b \in \mathbb{Q}——但证明从未告诉我们哪种情形成立,即 22\sqrt{2}^{\sqrt 2} 本身是有理数还是无理数。形式主义者立即接受这一点(这是古典一阶逻辑中有效的推导);直觉主义者拒绝将其视为真正的存在性证明,因为它没有产生一个明确的单一 (a,b)(a,b) 组以及证明正是这一组可行的证明。

构造性证明(消除分情形)。 取 a=2a = \sqrt{2} 及 b=log⁡29b = \log_2 9。两者都是无理数:2\sqrt 2 无理性如上;log⁡29\log_2 9 无理是因为若 log⁡29=p/q\log_2 9 = p/q(最简分数,q>0q>0)则 2p/q=92^{p/q}=9,于是 2p=9q2^p = 9^q,但左边是 22 的幂而右边是 33 的幂(当 q≥1q \ge 1 时 9q9^q 只有素因子 33),迫使 p=q=0p=q=0,与 9q=2p>19^q=2^p>1 矛盾。

现在显式计算:ab=2log⁡29=212log⁡29=2log⁡23=3a^b = \sqrt{2}^{\log_2 9} = 2^{\frac{1}{2}\log_2 9} = 2^{\log_2 3} = 3,利用 2=21/2\sqrt{2} = 2^{1/2},故 a=2,b=log⁡29a = \sqrt{2}, b = \log_2 9 给出 ab=(21/2)log⁡29=212log⁡29=2log⁡23=3∈Qa^b = (2^{1/2})^{\log_2 9} = 2^{\frac{1}{2}\log_2 9} = 2^{\log_2 3} = 3 \in \mathbb{Q}。

这次没有分情形,没有未解决的析取——证明1中原本悬而未决的问题(即 22\sqrt2^{\sqrt2} 是否有理?)被完全绕开,任何直觉主义者都接受组 (2,log⁡29)(\sqrt{2}, \log_2 9) 为真正的见证。(历史注记:Gelfond–Schneider(1934年)后来证明 22\sqrt{2}^{\sqrt 2} 实际上是无理数——实际上是超越数——从而确定情形2为"真实"的一种,但上述古典证明不需要这样一个深刻定理。)

对任意命题 PP,即使 P∨¬PP \vee \neg P 本身可能不可证,双重否定 ¬¬(P∨¬P)\neg\neg(P \vee \neg P) 在直觉主义逻辑中总是可证的。

为什么成立?

柯尔莫哥洛夫(1925年)与哥德尔(1933年)各自独立地证明古典逻辑可通过这种"否定翻译"嵌入直觉主义逻辑:你永远无法恢复完整的排中律,但总能恢复其双重否定,这正是将古典算术证明嵌入直觉主义系统所需要的,是后来形式化证明助手中的关键一步。

证明

第1步:固定我们可使用的直觉主义规则。 直觉主义逻辑保留分离规则以及 ∧,∨,→\wedge, \vee, \to 的自然演绎规则,并定义 ¬P:=(P→⊥)\neg P := (P \to \bot),其中 ⊥\bot 表示荒谬("从 ⊥\bot 的证明可推出任何东西"——爆炸原理——在直觉主义中成立)。不被假设的是 P∨¬PP \vee \neg P 或双重否定消去律 ¬¬P→P\neg\neg P \to P。

**第2步:直觉主义地证明容易的方向 P→¬¬PP \to \neg\neg P。** 假设有 PP 的证明。我们需要构造 ¬¬P=((P→⊥)→⊥)\neg\neg P = (( P \to \bot) \to \bot) 的证明,即假设有 (P→⊥)(P \to \bot) 的证明并推出 ⊥\bot。将这个假设的函数直接应用于我们 PP 的证明,立即得到 ⊥\bot 的证明。故 P→¬¬PP \to \neg\neg P 无需任何分情形即成立——这个方向从未需要排中律。

**第3步:直接构建 ¬¬(P∨¬P)\neg\neg(P \vee \neg P) 的证明。** 我们需要证明 ((P∨¬P)→⊥)→⊥((P \vee \neg P) \to \bot) \to \bot。假设有 (P∨¬P)→⊥(P \vee \neg P) \to \bot 的证明 hh(即 hh 反驳该析取式);我们需推出 ⊥\bot。观察到将 hh 限制在右析取支上,得到一个将 PP 的任意证明映为 ⊥\bot 证明的函数——这恰好就是 ¬P\neg P 的证明(用右注入 inr\text{inr} 包裹后应用 hh)。称这个导出的证明为 n:¬Pn : \neg P。

第4步:闭合循环。 既然有 n:¬Pn : \neg P,我们可以构造 inr(n):P∨¬P\text{inr}(n) : P \vee \neg P(P∨¬PP \vee \neg P 的右析取支,用证明 nn 实例化)。将此项反馈给 hh:h(inr(n))h(\text{inr}(n)) 是 ⊥\bot 的证明,恰好是第3步中需要推出的 ⊥\bot。这就闭合了第3步的假设,给出 ¬((P∨¬P)→⊥)\neg((P\vee\neg P)\to\bot) 即 ¬¬(P∨¬P)\neg\neg(P \vee \neg P) 的完整直觉主义证明。

*第5步:为何这不能*恢复 P∨¬PP \vee \neg P。** 第4步产生了 ¬¬(P∨¬P)\neg\neg(P \vee \neg P),但直觉主义地 ¬¬Q→Q\neg\neg Q \to Q 一般不可推导(那将需要我们恰好缺乏的类排中律原理)。因此这个翻译确实更弱:它表明古典逻辑的"定律"即使无法被直接断言,也能作为一个不可反驳的命题(其否定总是矛盾的)幸存下来——正是这个缝隙让构造性数学得以与古典数学共存,并通过哥德尔对每个公式 ϕ↦ϕN\phi \mapsto \phi^N 的否定翻译(将每个原子公式和每个联结词替换为其双重否定的直觉主义类似物)来解释古典数学,该翻译将每个古典可证的算术语句都送到一个直觉主义可证的语句。

进阶实际应用与典型例题

直觉主义者对构造性见证的要求最终被证明极其实用:柯里–霍华德对应表明 ∀x∃y.ϕ(x,y)\forall x \exists y. \phi(x,y) 的构造性证明就是一个从 xx 计算 yy 的程序。这构成了 Coq、Agda、Lean 等证明助手的基础,它们被用于形式化验证 CompCert C 编译器和 Feit–Thompson 定理,也构成了函数式编程语言(Haskell、ML)类型系统的基础——其中类型即命题,程序即证明。形式主义那种有限的、可机械验证的推导,正是计算机证明检查器逐行验证的内容——机器接受证明无需诉诸柏拉图式直觉。

例题: 从构造性存在证明中提取算法

一个构造性证明陈述:"对每个 n∈Nn \in \mathbb{N},存在唯一的一对 (q,r)(q,r) 满足 0≤r<n0 \le r < n,且给定被除数 mm 有 m=qn+rm = qn + r。" 说明若此证明按构造性方式书写,如何直接给出欧几里得除法算法。

解答

第1步:构造性存在证明通过对 mm 归纳进行。基础情形 m=0m=0:取 q=0,r=0q=0, r=0;显然 0=0⋅n+00 = 0\cdot n + 0 且 0≤0<n0 \le 0 < n(假设 n>0n>0)。

第2步:归纳步骤:假设对 mm 已有 (q,r)(q,r) 满足 m=qn+rm=qn+r,0≤r<n0\le r<n。对 m+1m+1:若 r+1<nr+1 < n,取 (q,r+1)(q, r+1)——因为 m+1=qn+(r+1)m+1 = qn+(r+1)。若 r+1=nr+1 = n,取 (q+1,0)(q+1, 0)——因为 m+1=qn+n=(q+1)n+0m+1 = qn+n = (q+1)n + 0。

第3步:这个归纳证明已经是一个算法:它是一个从 mm 反复递增来计算 (q,r)(q,r) 的递归函数,恰好对应"逐步计数"除法算法。通过柯里–霍华德从以更高效风格书写的证明(例如二进制长除法,逐次减去 nn 的倍数)中提取程序,得到每个处理器ALU中使用的快速欧几里得除法算法,证明的结构免费保证了终止性与正确性。

例题: 在Lean中形式化费马小定理

从形式主义角度解释,为何被Lean证明助手接受的费马小定理(pp 为素数时 ap≡a(modp)a^p \equiv a \pmod p)"证明"比仅经人类同行评审接受的证明具有更强的正确性保证。

解答

第1步:经人类评审的证明依赖评审者正确解析非形式化的数学论述,在脑中补全"显然"的步骤,并信任自己关于定义的背景知识——其中任何一环都可能掩盖错误(著名的例子是,怀尔斯第一次证明费马大定理的尝试中存在一个漏洞,直到经过广泛评审后才被发现)。

第2步:Lean证明是形式类型论(归纳构造演算)中的一个项;Lean的内核——仅几千行可信代码——机械地从公理重新推导每一个推理步骤,完全不诉诸直觉、英文叙述或"显然为真"。

第3步:这正是希尔伯特形式主义愿景在软件中的实现:数学被归约为可由一个小型、可审计的程序检验的符号操作,避免了就数字是否"真实存在"(柏拉图主义)或什么算作合法的心智构造(直觉主义)达成共识的需要——内核只关心推导在句法上是否有效。

哪种哲学认为数学对象独立于人类心智存在于抽象领域,数学家是发现而非发明定理?

在证明存在无理数 a,ba, b 使 ab∈Qa^b \in \mathbb{Q} 的古典证明中,用来证成关于 22\sqrt{2}^{\sqrt{2}} 是否有理数这一分情形的逻辑原理是什么?

哥德尔第二不完备定理证明了希尔伯特形式主义一致性纲领的什么?

作为Coq和Lean等证明助手基础的柯里–霍华德对应,将 ∀x∃y.ϕ(x,y)\forall x \exists y.\phi(x,y) 的构造性证明等同于什么?

参考文献

  1. Michael Dummett (2000). Elements of Intuitionism
  2. Kurt Gödel (1931). Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I
  3. A.S. Troelstra, D. van Dalen (1988). Constructivism in Mathematics: An Introduction
  4. The Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics