証明論(proof theory)とは、形式化した証明(導出)とその証明可能性を数学の対象として研究する数理論理学の分野である。公理系の強さの比較、カット除去や正規化のような導出の正規形、導出から計算や構成の情報を取り出すこと、無矛盾性の証明とその限界などを扱い、Gentzen は Peano 算術の無矛盾性を順序数 $\varepsilon_0$ までの超限帰納法で示して順序数解析を始めた。代表的な結果の 1 つである Gödel–Gentzen の否定翻訳は、古典論理の導出を、各部分に否定を入れた式の直観主義論理での導出に移し、これにより Peano 算術の無矛盾性は Heyting 算術の無矛盾性に帰着する。
数学の証明は、ふつうは言葉と式で書かれ、読み手を納得させるためのものである。一方、一階述語論理 のような形式言語と推論規則を決めれば、証明は規則に従って並べた記号の有限の配列(導出)として厳密に定義でき、それ自体を数学の対象として調べられる。証明論(proof theory)は、このように形式化した証明と証明可能性を研究する 数理論理学 の分野である。
証明論の主な仕事は、次の 4 つにまとめられる(Bus98 p. 2)。数学の証明を形式化するのに適した論理と公理系を立て、どの結果がどの公理から従うか(体系の強さ)を調べること。導出の構造を調べ、正規形などの構文的な事実を示すこと。導出から、定理が正しいという以上の情報(計算や構成の情報)を取り出すこと。導出をどう効率よく作るかを調べること。この記事では、証明論の基本的な概念を定義し、代表的な問いと結果を見取り図にしたうえで、古典論理の導出を直観主義論理の導出に移す Gödel–Gentzen の否定翻訳 を完全に証明し、そこから古典的な Peano 算術の無矛盾性が直観主義的な Heyting 算術の無矛盾性に帰着することを導く。最後に、正本の記事をどの順に読めばよいかを示す。
一階論理の証明体系 の記事の定義「証明体系・導出・証明可能性」のとおり、証明体系は、論理公理と、機械的に判定できる推論規則からなり、文の集合 $\Gamma$ から $A$ が導出できることを $\Gamma\vdash A$ と書く。証明体系には、公理を多くとり規則を前件肯定だけにする Hilbert流の証明体系、仮定を置いて外す規則で組み立てる 自然演繹、シークエント $\Gamma\Rightarrow\Delta$ を扱う シークエント計算 などの流儀がある。$\Gamma$ が 矛盾 するとは、ある $\varphi$ で $\Gamma\vdash\varphi$ かつ $\Gamma\vdash\lnot\varphi$ となることであり、そうでないとき 無矛盾 という(無矛盾性 の記事の定義「無矛盾性」)。$\bot$ を記号にもつ自然演繹では、規則 $\lnot\mathrm E$ と $\bot_{\mathrm I}$ により、これは $\Gamma\vdash\bot$ と同値である。
証明論では、2 つの理論の強さを導出の変換で比べる。
$T,S$ を理論(文の集合)とし、それぞれに証明体系を固定する。
1 の「計算可能な手続き」とは、導出の形だけを見て別の導出を組み立てる方法が具体的に与えられていることを指す。モデルを作って無矛盾性を示す方法(無矛盾性 の記事の例「Peano 算術」)は、モデルの存在を保証する強い理論の中で議論するので、この意味の還元ではない。
| 問い | 代表的な結果 | 扱う記事・文献 |
|---|---|---|
| 導出に正規形があるか | Gentzen の基本定理(カット除去定理)、命題論理での証明 | シークエント計算 |
| 自然演繹の正規化($\land,\to$ の部分) | GLT89 第 3・4 章 | |
| 導出から情報を取り出せるか | 直観主義論理の選言の性質 | シークエント計算 |
| 型付き λ 計算との対応(Curry–Howard) | 型理論、GLT89 第 3 章 | |
| 理論の無矛盾性を示せるか | 第 2 不完全性定理による限界 | Gödelの不完全性定理 |
| $\varepsilon_0$ までの超限帰納法による PA の無矛盾性 | Rat06 §1.1 | |
| 理論どうしの強さの比較 | 古典算術から直観主義算術への否定翻訳 | この記事の thm-pt-pa-ha |
| 二階算術の部分体系による定理の分類 | 逆数学 |
正規形とカット除去 シークエント計算 の記事は、補題を使う推論にあたるカットの規則を除いても導出できるものが変わらないという Gentzen の基本定理を述べ、命題論理の場合を証明している。カットのない導出には結論の部分論理式しか現れないので、体系の無矛盾性や選言の性質が導出の形だけから分かる(同記事の系「LK の無矛盾性」、定理「LJ の選言の性質」)。カット除去は証明論の中心の定理とみなされている(Bus98 p. 3)。自然演繹では、導入規則の直後に同じ論理記号の除去規則を使う回り道を取り除く操作が対応し、$\land$ と $\to$ だけの部分では、型付き λ 計算の正規化定理として証明される(GLT89 §3.5 p. 19、§4.2–4.3 pp. 24–26)。
無矛盾性の証明と順序数 Hilbert は、数学を形式化し、その無矛盾性を有限的な方法で証明することを目指した(Hilbert のプログラム、Rat06 pp. 45–46)。Gödelの不完全性定理 の第 2 定理は、$\mathsf Q$ を含む無矛盾な決定可能な公理系が、適当な条件のもとで自分の無矛盾性を証明できないことを示し、この目標に限界を与えた。Gentzen は 1936 年に、PA の無矛盾性が、初等的に計算可能な述語についての順序数 $\varepsilon_0=\sup\{\omega,\omega^\omega,\omega^{\omega^\omega},\dots\}$ までの超限帰納法と有限的な推論から証明できることを示し、さらに PA が、算術の論理式で書ける述語について、$\varepsilon_0$ 未満の各順序数までの超限帰納法を証明することを示した(Rat06 p. 47。この記事では証明しない)。このように理論の強さを順序数で測る研究を 順序数解析 という。有限的な推論に、初等的に計算可能な述語についての $\alpha$ までの超限帰納法を加えて理論 $T$ の無矛盾性が証明できる最小の $\alpha$ は、$T$ の 証明論的順序数 の 1 つの定め方である(同所の式 (2))。PA では、上の Gentzen の 2 つの結果と第 2 不完全性定理により、これは $\varepsilon_0$ になる。
体系の比較 強い理論の導出を弱い理論や別の論理の導出に移す変換は、def-pt-reduction の意味で強さを比べる方法である。以下では、その最も基本的な例である否定翻訳を証明する。
一階言語 $L$ を固定し、固有変数に使う定数記号が無限に多くあるとする。導出は 自然演繹 の記事の規則(命題の規則と節「量化記号の規則」)による。導出に現れるのは文で、$\bot$ は論理記号、$\lnot$ は規則 $\lnot\mathrm I$・$\lnot\mathrm E$ をもつ基本の記号である。規則すべてを使う体系を $\mathbf{NK}$(古典論理)、そこから背理法の規則 $\bot_{\mathrm C}$ を除いた体系を $\mathbf{NJ}$(直観主義論理)とよび、導出可能性をそれぞれ $\Gamma\vdash_{\mathrm c}A$、$\Gamma\vdash_{\mathrm i}A$ と書く。$B\leftrightarrow C$ は $(B\to C)\land(C\to B)$ の略記とする。$\mathbf{NJ}$ の導出は $\mathbf{NK}$ の導出でもあるので、$\Gamma\vdash_{\mathrm i}A$ なら $\Gamma\vdash_{\mathrm c}A$ である。$\mathbf{NJ}$ で次の式が導出できることを繰り返し使う(どれも数行の導出である)。
$$
\text{(i)}\ B\to\lnot\lnot B,\qquad \text{(ii)}\ \lnot\lnot\lnot B\to\lnot B,\qquad \text{(iii)}\ (B\to C)\to(\lnot C\to\lnot B),\qquad \text{(iv)}\ (B\to C)\to(\lnot\lnot B\to\lnot\lnot C).
$$
(i):$B$ と $\lnot B$ を仮定すると $\lnot\mathrm E$ で $\bot$、$\lnot\mathrm I$ で $\lnot B$ を外して $\lnot\lnot B$、$\to\mathrm I$ で $B$ を外す。(iii):$B\to C$、$\lnot C$、$B$ を仮定すると $\to\mathrm E$ で $C$、$\lnot\mathrm E$ で $\bot$、$\lnot\mathrm I$ で $B$ を外して $\lnot B$、$\to\mathrm I$ を 2 回使う。(ii):$\lnot\lnot\lnot B$ と $B$ を仮定する。(i) により $\lnot\lnot B$ なので、$\lnot\mathrm E$ で $\bot$、$\lnot\mathrm I$ で $B$ を外して $\lnot B$ を得る。(iv):(iii) を 2 回使う。$B\to C$ から $\lnot C\to\lnot B$、それに (iii) を使って $\lnot\lnot B\to\lnot\lnot C$ を得る。
論理式 $A$ の 否定翻訳 $A^N$ を、組み立てに沿って次で定める($P$ は $\bot$ 以外の原子論理式)。
$$
P^N:=\lnot\lnot P,\qquad \bot^N:=\bot,\qquad (\lnot B)^N:=\lnot B^N,\qquad (B\land C)^N:=B^N\land C^N,\qquad (B\to C)^N:=B^N\to C^N,
$$
$$
(B\lor C)^N:=\lnot(\lnot B^N\land\lnot C^N),\qquad (\forall x\,B)^N:=\forall x\,B^N,\qquad (\exists x\,B)^N:=\lnot\forall x\,\lnot B^N.
$$
文の集合 $\Gamma$ について $\Gamma^N:=\{\gamma^N\mid\gamma\in\Gamma\}$ とおく。
古典論理では $\lnot\lnot P$ と $P$、$B\lor C$ と $\lnot(\lnot B\land\lnot C)$、$\exists x\,B$ と $\lnot\forall x\,\lnot B$ はそれぞれ同値なので、$A^N$ は $A$ を「否定を使って言い直した」式である。$A^N$ には $\lor$ と $\exists$ が現れず、原子論理式はすべて二重否定の中にある。この翻訳は、Bus98 §3.1.4(p. 67)の翻訳に $\bot^N:=\bot$ を加えたものである。OLT26 §24.5(p. 377)は、$\lor$ と $\exists$ を $\lnot\lnot(B^N\lor C^N)$、$\lnot\lnot\exists x\,B^N$ と訳す変種を述べ、Theorem 24.3・24.4 として下の lem-pt-basic の 2 と thm-pt-negative の前半にあたる主張を(証明なしで)挙げている。
1:翻訳は原子論理式に $\lnot\lnot$ を付け、$\lor$・$\exists$ を同じ変数を束縛する $\lnot,\land,\forall$ の組み合わせに置き換えるだけで、項にも量化する変数にも手を触れない。したがって、自由変数と代入可能性は変わらず、代入と翻訳の順序を入れ替えても同じ論理式になる。$A$ の組み立てについての帰納法で、各場合の定義を見比べれば確かめられる。
2:論理記号の個数についての帰納法で示す。要点は、原子論理式・$\lor$・$\exists$ の 3 つの場合に古典論理の同値 $\lnot\lnot P\leftrightarrow P$、$(B\lor C)\leftrightarrow\lnot(\lnot B\land\lnot C)$、$\exists x\,B\leftrightarrow\lnot\forall x\,\lnot B$ を使い、ほかの場合は帰納法の仮定の同値を部分に当てはめることである。
$\bot$ では両辺が同じである。原子論理式 $P$ では、$P\to\lnot\lnot P$ は (i)、逆は $\lnot\lnot P$ と $\lnot P$ から $\bot$ を出して $\bot_{\mathrm C}$ で $P$ を得る。$\lnot,\land,\to$ の場合は、帰納法の仮定 $\vdash_{\mathrm c}B\leftrightarrow B^N$、$\vdash_{\mathrm c}C\leftrightarrow C^N$ から、各結合子の導入・除去規則で $(\lnot B)\leftrightarrow\lnot B^N$ などが導出できる。$B\lor C$ では、まず $(B\lor C)\leftrightarrow(B^N\lor C^N)$ を同じように導き、次に古典論理の同値 $(B^N\lor C^N)\leftrightarrow\lnot(\lnot B^N\land\lnot C^N)$(右から左は、左辺の否定を仮定して $\lnot B^N$ と $\lnot C^N$ を $\lor\mathrm I$ と $\lnot\mathrm I$ で得て矛盾を出し、$\bot_{\mathrm C}$ を使う)を合わせる。$\forall x\,B(x)$ では、$A$ に現れない定数記号 $a$ をとると、$B(a)$ は $A$ より論理記号が少ないので帰納法の仮定により $\vdash_{\mathrm c}B(a)\leftrightarrow B^N(a)$(1 により $(B(a))^N=B^N(a)$)である。$\forall x\,B(x)$ を仮定して $\forall\mathrm E$ で $B(a)$、同値から $B^N(a)$、$\forall\mathrm I$ で $\forall x\,B^N(x)$ を得る($a$ は開いた仮定にも結論にも現れない)。逆も同じである。$\exists x\,B(x)$ では、同じように $\exists x\,B(x)\leftrightarrow\exists x\,B^N(x)$ を導き、古典論理の同値 $\exists x\,B^N\leftrightarrow\lnot\forall x\,\lnot B^N$(右から左は、$\lnot\exists x\,B^N$ を仮定すると $\exists\mathrm I$ と $\lnot\mathrm I$ と $\forall\mathrm I$ で $\forall x\,\lnot B^N$ が出て矛盾するので $\bot_{\mathrm C}$ を使う)を合わせる。 $\square$
すべての文 $A$ について $\vdash_{\mathrm i}\lnot\lnot A^N\to A^N$ である。
$A$ の論理記号の個数についての帰納法で、場合を分ける。
$\lnot\lnot B\to B$ は一般の $B$ については $\mathbf{NJ}$ で導出できない(自然演繹 の記事の命題「背理法の規則を除いた体系」)。翻訳した式だけがこの性質をもち、それが背理法の規則 $\bot_{\mathrm C}$ の代わりに働く。
文の集合 $\Gamma$ と文 $A$ について
$$
\Gamma\vdash_{\mathrm c}A\iff\Gamma^N\vdash_{\mathrm i}A^N.
$$
さらに、$\Gamma$ からの $A$ の $\mathbf{NK}$ の導出を、$\Gamma^N$ からの $A^N$ の $\mathbf{NJ}$ の導出に移す計算可能な手続きがある。
$\Rightarrow$:$\mathbf{NK}$ のすべての導出 $D$ について $\mathrm{Open}(D)^N\vdash_{\mathrm i}\mathrm{concl}(D)^N$ を、$D$ の組み立てに沿った帰納法で示す。各場合に $\mathbf{NJ}$ の導出を具体的に組み立てるので、この証明が求める手続きを与える。以下 $\Delta_j:=\mathrm{Open}(D_j)^N$ と書く。古典論理に固有の規則と、翻訳で形の変わる規則が要所である。
葉(仮定 $A$ 1 つ)では $\{A^N\}\vdash_{\mathrm i}A^N$ である。$\land\mathrm I$、$\land\mathrm E$、$\to\mathrm I$、$\to\mathrm E$、$\lnot\mathrm I$、$\lnot\mathrm E$ は、翻訳が $\land,\to,\lnot$ と交換するので、帰納法の仮定に同じ規則を使えばよい($\to\mathrm I$・$\lnot\mathrm I$ で外す仮定は $A^N$ になる)。$\bot_{\mathrm I}$:$\bot^N=\bot$ なので、$\bot_{\mathrm I}$ で $A^N$ を得る。$\lor\mathrm I$:$A^N$ から $\lnot(\lnot A^N\land\lnot B^N)$ を導く。$\lnot A^N\land\lnot B^N$ を仮定し、$\land\mathrm E$ で $\lnot A^N$、$\lnot\mathrm E$ で $\bot$、$\lnot\mathrm I$ で仮定を外す。$\forall\mathrm E$:lem-pt-basic の 1 により $(A(t))^N=A^N(t)$ なので、$\forall\mathrm E$ をそのまま使う。$\forall\mathrm I$:翻訳は定数記号を増やさないので、固有変数 $a$ は $\Delta_1$ にも $\forall x\,A^N(x)$ にも現れず、$\forall\mathrm I$ をそのまま使える。$\exists\mathrm I$:$A^N(t)$ から $\lnot\forall x\,\lnot A^N(x)$ を導く。$\forall x\,\lnot A^N(x)$ を仮定し、$\forall\mathrm E$ で $\lnot A^N(t)$、$\lnot\mathrm E$ で $\bot$、$\lnot\mathrm I$ で仮定を外す。
文の集合 $\Gamma$ が $\mathbf{NK}$ で無矛盾であることと、$\Gamma^N$ が $\mathbf{NJ}$ で無矛盾であることは同値である。とくに、$\Gamma$ の $\mathbf{NK}$ での無矛盾性は、def-pt-reduction の意味で $\Gamma^N$ の $\mathbf{NJ}$ での無矛盾性に還元される。
$\bot^N=\bot$ なので、thm-pt-negative を $A:=\bot$ に使うと、$\Gamma\vdash_{\mathrm c}\bot\iff\Gamma^N\vdash_{\mathrm i}\bot$ である。導出を移す手続きは thm-pt-negative の後半による。$\square$
命題論理では、古典論理で導出できる式は、全体に二重否定を付けるだけで直観主義論理で導出できる(直観主義論理 の記事の定理「Glivenko の定理」)。述語論理ではそれでは足りず、否定翻訳のように各部分に否定を入れる必要がある(同記事の注意「Glivenko の定理の出典」)。
算術の言語 $L_A=\{0,S,+,\cdot,<\}$ に固有変数用の定数記号を無限に加えた言語で導出を考える。この節では等号 $=$ を論理記号とせず 2 項の関係記号として言語に含め、その性質を公理 (E1)・(E2) で与える(自然演繹 の記事の規則には等号の規則がないため)。等号を論理記号とする Peano算術 の記事の $\mathsf{PA}$ とは等号の扱いだけが違い、両者は同じ $L_A$ の文を証明するが((E1)・(E2) は等号の論理で証明でき、逆に等号の論理公理は (E1)・(E2) から導ける)、この記事ではそれを証明せず、以下の $\mathsf{HA}$・$\mathsf{PA}$ はこの節の定義の意味で使う。
次の $L_A$ の文の全体を $\mathrm{Ax}$ とする。
すべての $\sigma\in\mathrm{Ax}$ について $\mathsf{HA}\vdash\sigma^N$ である。
lem-pt-basic の 1 により、翻訳は全称化・代入と交換する。公理ごとに確かめる。以下、$a,b,\dots$ は新しい定数記号で、最後に $\to\mathrm I$ と $\forall\mathrm I$ で全称化する。
$L_A$ の文 $\sigma$ について、$\mathsf{PA}\vdash\sigma$ なら $\mathsf{HA}\vdash\sigma^N$ である。とくに、$\mathsf{HA}$ が無矛盾なら $\mathsf{PA}$ も無矛盾であり、$\mathsf{PA}$ の無矛盾性は def-pt-reduction の意味で $\mathsf{HA}$ の無矛盾性に還元される。
$\mathsf{PA}\vdash\sigma$ なら、開いた仮定が $\mathrm{Ax}$ の有限個の元 $\gamma_1,\dots,\gamma_k$ である $\mathbf{NK}$ の導出がある。thm-pt-negative により $\{\gamma_1^N,\dots,\gamma_k^N\}\vdash_{\mathrm i}\sigma^N$ であり、$\to\mathrm I$ を $k$ 回使うと、開いた仮定のない $\gamma_1^N\to(\gamma_2^N\to\cdots(\gamma_k^N\to\sigma^N)\cdots)$ の $\mathbf{NJ}$ の導出が得られる。lem-pt-ha-axioms により各 $\gamma_j^N$ は $\mathsf{HA}$ で導出できるので、$\to\mathrm E$ を $k$ 回使って $\mathsf{HA}\vdash\sigma^N$ を得る。
$\sigma:=\bot$ とすると $\bot^N=\bot$ なので、$\mathsf{PA}\vdash\bot$ なら $\mathsf{HA}\vdash\bot$ である。lem-pt-ha-axioms の各導出は公理ごとに具体的に書け、thm-pt-negative の変換は計算可能なので、$\mathsf{PA}$ からの $\bot$ の導出を $\mathsf{HA}$ からの $\bot$ の導出に移す手続きが得られる。$\square$
この結果は、無矛盾性に関する限り、古典論理による算術が直観主義論理による算術より危うくはないことを示している。一方、$\mathsf{HA}$ が無矛盾であること自体は thm-pt-pa-ha からは分からない。純粋な論理についての同じ結論(古典論理と直観主義論理の無矛盾性の同値)は Bus98 p. 68 にある。
$P$ を 1 項の関係記号、$c$ を定数記号とする。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| thm-pt-negative の翻訳($\Gamma$ と $A$ をそのまま使う) | $\Gamma=\emptyset$、$A=P(c)\lor\lnot P(c)$ | $\Gamma\vdash_{\mathrm i}A$ |
| def-pt-negative の原子論理式の二重否定($P^N:=P$ に替える) | $A=\lnot\lnot P(c)\to P(c)$ | $\vdash_{\mathrm i}A^N$ |
| thm-pt-pa-ha の $\mathsf{HA}$ の帰納法の公理 | $\sigma=\forall x\,\lnot(x=Sx)$ | 帰納法の公理を除いた $\mathrm{Ax}$ から $\sigma^N$ が $\mathbf{NJ}$ で導出できること |
1・2 行目の $A$ は、どちらも $\vdash_{\mathrm c}A$ である(自然演繹 の記事の例「二重否定の除去と排中律」)。2 行目の翻訳では $\lnot$ と $\to$ は形を保つので、翻訳しても $\lnot\lnot P(c)\to P(c)$ のままである。どちらも $\mathbf{NJ}$ で導出できないことは、3 つの値による付値で分かる。
$H=\{0,\tfrac12,1\}$ と演算 $\min,\max,\Rightarrow$ は 自然演繹 の記事の命題「背理法の規則を除いた体系」の証明と同じとする。各関係記号 $R$ に値 $w_R\in H$ を与え、原子文 $R(t_1,\dots,t_n)$ の値を $w_R$、$w(\bot):=0$ とし、結合子は同じ証明のとおりに広げ、$w(\forall x\,B(x)):=w(\exists x\,B(x)):=w(B(c))$ と定める。原子文の値は項によらないので、論理記号の個数についての帰納法で、$w(B(t))$ はどの閉項 $t$ でも同じ値になる。したがって $\forall\mathrm I$・$\forall\mathrm E$・$\exists\mathrm I$ は値を変えない。$\exists\mathrm E$ では、$m:=w(\mathrm{Open}(D))\le w(\exists x\,B(x))=w(B(a))$ と $\min(m,w(B(a)))\le w(C)$ から $m\le w(C)$ である。命題の規則は同じ証明のとおりなので、$\mathbf{NJ}$ のすべての導出で $w(\mathrm{Open}(D))\le w(\mathrm{concl}(D))$ が成り立ち、開いた仮定のない導出の結論は値 $1$ をとる。$w_P:=\tfrac12$ とすると、$w(\lnot P(c))=0$、$w(P(c)\lor\lnot P(c))=\tfrac12$、$w(\lnot\lnot P(c))=1$、$w(\lnot\lnot P(c)\to P(c))=\tfrac12$ なので、どちらも $\mathbf{NJ}$ で導出できない。
証明論の記事は、おおよそ次の順に読むと前提がそろう。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する