MathLabs

数学の歴史と哲学

形式主義・直観主義・プラトニズム

数学とは何かをめぐる3つの対立する哲学:プラトニズムは数学的対象が人間から独立に存在すると考える(ゲーデルの立場);ヒルベルトの形式主義は数学を有限的手段で証明可能な一貫した記号操作に還元する;ブラウワーの直観主義は無制限の排中律 P∨¬PP \vee \neg P を拒否し、構成的証拠を要求する。古典的な 22\sqrt{2}^{\sqrt{2}} の無理性パズルを非構成的・構成的の両方で証明し、ゲーデル・コルモゴロフ変換が古典論理を直観主義論理に埋め込むことを示す。

直観数とはどのような種類のものか

3人の数学者が数 77 が「存在する」かどうかで議論していると想像してほしい。プラトニストは言う:はい、77 は数学的対象の抽象領域に存在し、誰かが数えるより前から数 33 が存在していたのと同じくらい実在的である——我々は天文学者が惑星を発見するように定理を発見するのだ、と。形式主義者は言う:数学はチェスのような記号と規則のゲームである;「77」は算術の公理に従うから意味のある文字列なのであり、数学とは実際にはどの記号列がどの記号列から導出可能かについてのものであって、神秘的な領域についてのものではない。直観主義者は言う:数学的対象は我々が心の中でそれを段階的に構成できるときにのみ存在する; P∨¬PP \vee \neg P は自動的に真ではない、なぜならある命題 PP について、PP を証明する構成も反証する構成も決して手に入らないことがあるからだ。

プラトニズム・形式主義・直観主義を連結ノードとして示すインタラクティブグラフ
概念グラフ:プラトニズム、形式主義、直観主義は存在・証明・真理について意見が対立する3つのノードである——ドラッグして各哲学が論理学・計算・集合論とどう繋がるか見てみよう。

中高排中律

定義: 古典論理と直観主義論理

古典論理では 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)
3つの学派の比較
問いプラトニズム(ゲーデル)形式主義(ヒルベルト)直観主義(ブラウワー)
数は存在するか?はい、心とは独立の抽象領域に存在する無関係——記号列と導出規則のみが重要心の中で構成できる場合のみ
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)はその直系の子孫である。

ab∈Qa^b \in \mathbb{Q} を満たす無理数 a,ba, b が存在する。

なぜ正しいのか?

この定理は形式主義・プラトニズムと直観主義の対立を教室で示す最も鋭い例である:古典的(非構成的)証明は未決定命題に関する場合分けによって存在を確立するが、どちらの場合が実際なのかを決して教えてくれない一方、構成的証明は明示的な値を提示する。

証明

古典的(非構成的)証明。 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} なので終わり。

いずれにせよ ab∈Qa^b \in \mathbb{Q} となる無理数 a,ba,b を提示できたが、証明はどちらの場合が成り立つか、すなわち 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) を真の証拠として受け入れる。(歴史的注記:ゲルフォント・シュナイダー(1934年)は後に 22\sqrt{2}^{\sqrt 2} が実際に無理数——実は超越数——であることを証明し、場合2が「真」であることを解決したが、上記の古典的証明はそのような深い定理を必要としなかった。)

任意の命題 PP について、P∨¬PP \vee \neg P 自体は証明できないかもしれないが、二重否定 ¬¬(P∨¬P)\neg\neg(P \vee \neg P) は直観主義論理で証明可能である。

なぜ正しいのか?

コルモゴロフ(1925年)とゲーデル(1933年)は独立に、この「否定翻訳」を通じて古典論理が直観主義論理に埋め込まれることを示した:完全なLEMを取り戻すことは決してできないが、その二重否定は常に取り戻すことができ、これはまさに古典的な算術証明を直観主義体系に埋め込むために必要なものであり、後の形式化された証明支援系における重要なステップである。

証明

ステップ1:使用可能な直観主義規則を固定する。 直観主義論理はモーダスポネンスと ∧,∨,→\wedge, \vee, \to の自然演繹規則を保持し、¬P:=(P→⊥)\neg P := (P \to \bot) と定義する(⊥\bot は矛盾であり、「⊥\bot の証明から何でも従う」——ex falso quodlibet——は直観主義的に妥当)。仮定されないのは 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 は場合分けなしに成り立つ——この方向はLEMを一切必要としなかった。

**ステップ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 は一般には導出できない(それにはまさに我々が欠いているLEM的原理が必要となる)。したがってこの翻訳は本質的により弱い:古典論理の「法則」が、直接主張できない場合でも反駁不可能な言明(その否定は常に矛盾する)として生き残ることを示している——これがまさに、構成的数学が古典数学と共存し、それを解釈することを可能にする隙間であり、すべての式 ϕ↦ϕN\phi \mapsto \phi^N(各原子式と各接続詞をその二重否定直観主義類似物に置き換える)のゲーデルの否定翻訳を通じて、古典的に証明可能なあらゆる算術文を直観主義的に証明可能な文へ送る。

発展実世界での応用と具体例

直観主義者の構成的証拠への要求は、極めて実用的であることが判明した:カリー・ハワード対応は ∀x∃y.ϕ(x,y)\forall x \exists y. \phi(x,y) の構成的証明が、xx から yy を計算するプログラムそのものであることを示す。これはCoq、Agda、Leanのような証明支援系の基盤であり、CompCert Cコンパイラやファイト・トンプソン定理の形式検証に使われ、関数型プログラミング言語(Haskell、ML)の型システム——型が命題であり、プログラムが証明であるという——の基盤でもある。形式主義の有限的で機械的に検証可能な導出は、文字通りコンピュータの証明チェッカーが一行ずつ検証するものである——機械が証明を受け入れるのにプラトン的直観への訴えは不要である。

例: 構成的存在証明からアルゴリズムを抽出する

構成的証明はこう述べる:「任意の n∈Nn \in \mathbb{N} について、0≤r<n0 \le r < n かつ被除数 mm が与えられたとき m=qn+rm = qn + r を満たす一意な組 (q,r)(q,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 について既に m=qn+rm=qn+r、0≤r<n0\le r<n を満たす (q,r)(q,r) があると仮定する。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:人間による査読の証明は、査読者が非形式的な数学の文章を正しく解釈し、「明らかな」ステップを心の中で埋め、定義に関する自らの背景知識を信頼することに依存する——そのいずれもがエラーを隠しうる(有名な例として、ワイルズの最初のFLT証明の試みには、広範な査読の後にのみ発見されたギャップがあった)。

ステップ2:Leanの証明は形式的型理論(帰納的構成の計算体系)の項である;Leanのカーネル——数千行の信頼されたコード——は公理からのあらゆる推論ステップを機械的に再導出し、直観・英語の文章・「明らかに正しい」への訴えは一切ない。

ステップ3:これはまさにヒルベルトの形式主義的ビジョンがソフトウェアとして実現されたものである:数学は小さく監査可能なプログラムで検証可能な記号操作に還元され、数が「本当に存在する」かどうか(プラトニズム)や何が正当な心的構成とみなされるか(直観主義)について合意する必要を回避する——カーネルは導出が構文的に妥当かどうかのみを気にする。

数学的対象が人間の心とは独立に抽象領域に存在し、数学者は定理を発明するのではなく発見すると主張する哲学はどれか?

ab∈Qa^b \in \mathbb{Q} を満たす無理数 a,ba, b が存在するという古典的証明において、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