4

超丁寧に解説するΣ_1完全性と表現定理

77
0
$$$$

この記事について

この記事は「超丁寧に解説するゲーデルの不完全性定理」の準備編にあたる。ただし、単独で読めるように書いたつもりである。
不完全性定理の解説を読んでいると、次の二つの定理がしばしば証明抜きで通過していく。
・表現定理:計算可能な関数や関係は、算術の論理式によって体系内で表現できる。
・$\Sigma_1$完全性:標準モデルで真な$\Sigma_1$文は、極めて弱い算術の体系でも証明できる。
どちらも「まあそうだろう」と思わせる主張だが、この二つこそが不完全性定理のエンジンである。表現定理は第一不完全性定理を動かし、$\Sigma_1$完全性は体系の内部に取り込まれて第二不完全性定理を動かす。ここを飛ばすと不完全性定理は魔術に見えるので、この記事ではこの二つに絞って証明を与える。表現定理の証明には、次の二つの工夫を使う。
・原始再帰を消去する。再帰的関数の定義には初期関数・合成・原始再帰・最小化の四つの操作が出てくるが、有限列の符号化を使うと原始再帰を最小化で置き換えられる。これにより帰納法の場合分けが劇的に減る。
・$\Sigma_1$と$\Pi_1$を同時に走らせる。表現する論理式を$\Sigma_1$版と$\Pi_1$版のペアで作っていく。素朴に作ると、否定を取る場面で$\Sigma_1$の形が崩れる。ペアにしておけば、否定の下にはもう一方を置いて形を保てる。
対象読者は、一階述語論理の構文論と意味論を一通り学んだ人である。計算可能性理論の予備知識は仮定しない。
不完全性定理そのものを早く読みたい人は、前編から読み始めて、必要になったときにここへ戻ってくるのでもよい。前編に、この記事の結論だけをまとめた節を置いてある。

算術の体系

不完全性定理は算術の形式体系についての定理なので、まず体系を決める。普通は$\mathrm{PA}$を使いたくなるところだが、あえてもっと弱い体系も用意する。理由は後に述べる。

言語と数項

算術の言語として次を使う。
$$ \mathcal{L}_A = \lbrace 0, s, +, \cdot \rbrace $$
$s$は後者関数($s(x) = x+1$)、$+$と$\cdot$は足し算と掛け算である。これに変数、等号、論理記号がつく。論理記号は$\neg$, $\to$, $\forall$の三つを基本とし、$\wedge$, $\vee$, $\leftrightarrow$, $\exists$はいつものように略記とする。これは「超丁寧に解説するゲーデルの完全性定理」と同じ流儀である。また
$$ \bot \equiv \neg(0 = 0) $$
と定めておく。$\bot$は常に偽な文の代表である。
順序記号は言語に入れず、次の略記とする。$w$は$a$にも$b$にも現れない変数とする。
$$ a \le b \equiv \exists w (w + a = b) \qquad a < b \equiv (a \le b) \wedge (a \neq b) $$
「$b$から$a$を引ける」という意味である。

数項

自然数$n$に対応する項を
$$ \overline{n} = \underbrace{s(s(\cdots s(}_{n \text{ 個}}0)\cdots)) $$
と定める。$\overline{0} = 0$, $\overline{1} = s(0)$, $\overline{2} = s(s(0))$, $\dots$ である。

「自然数$n$」と「体系の中の項$\overline{n}$」を区別することは、この分野では極めて重要である。前者はメタレベルの対象、後者は体系内の記号列だ。ここを取り違えると議論が全部ぼやける。
標準モデル$\mathfrak{N} = (\mathbb{N}, 0, s, +, \cdot)$を固定しておく。

Robinsonの$\mathrm{Q}$

まず、帰納法をまったく持たない体系から始める。

Robinsonの$\mathrm{Q}$

$\mathcal{L}_A$上の次の七つの公理からなる体系。
$\mathbf{Q1}$ $\forall x\forall y(s(x)=s(y) \to x=y)$
$\mathbf{Q2}$ $\forall x \neg(s(x)=0)$
$\mathbf{Q3}$ $\forall x(\neg(x=0) \to \exists y(x=s(y)))$
$\mathbf{Q4}$ $\forall x(x+0=x)$
$\mathbf{Q5}$ $\forall x\forall y(x+s(y)=s(x+y))$
$\mathbf{Q6}$ $\forall x(x\cdot 0=0)$
$\mathbf{Q7}$ $\forall x\forall y(x\cdot s(y)=(x\cdot y)+x)$

有限個(七個)しかないことに注意しておく。これは前編でチャーチの定理を導くときに効く。

$\mathrm{Q}$はどれくらい弱いのか

これは実感しておく価値がある。たとえば
$$ \mathrm{Q} \nvdash \forall x (0 + x = x) $$
である。$\mathbf{Q4}$は$x + 0 = x$だが、$0 + x = x$は言っていない。帰納法がないので$x$について一般化できないのだ。小学生でも知っている等式が証明できない。
では$\mathrm{Q}$は何ができるのか。具体的な数についての計算はすべてできる。たとえば$\overline{1} + \overline{1} = \overline{2}$は$\mathbf{Q4}$, $\mathbf{Q5}$から
$$ \overline{1}+s(0) = s(\overline{1}+0) = s(\overline{1}) = \overline{2} $$
と導ける。より一般に、任意の$m, n$について
$$ \mathrm{Q} \vdash \overline{m}+\overline{n} = \overline{m+n}, \qquad \mathrm{Q} \vdash \overline{m}\cdot\overline{n} = \overline{m\cdot n}, \qquad \mathrm{Q} \vdash \overline{m} \neq \overline{n} \ (m \neq n) $$
が成り立つ。つまり$\mathrm{Q}$は$0+x=x$のような一般法則すら言えないが、個別の計算は全部できる。この非対称性が、あとで決定的に効いてくる。

Peano算術$\mathrm{PA}$

Peano算術$\mathrm{PA}$

$\mathbf{Q1}$, $\mathbf{Q2}$, $\mathbf{Q4}$から$\mathbf{Q7}$に、次の帰納法図式を加えた体系。各論理式$\varphi(x,\vec{y})$に対し
$$ \forall \vec{y}\Big[\big(\varphi(0,\vec{y}) \wedge \forall x(\varphi(x,\vec{y}) \to \varphi(s(x),\vec{y}))\big) \to \forall x \varphi(x,\vec{y})\Big] $$

帰納法図式は論理式$\varphi$の個数だけ公理を含む(可算無限個)。ここが$\mathrm{PA}$の強さの源泉である。$\mathbf{Q3}$は帰納法から導けるので、$\mathrm{PA}$は$\mathrm{Q}$を含む。

さらに弱い体系$\mathrm{R}$

$\mathrm{Q}$よりさらに弱い体系を考えることもできる。

Mostowski-Robinson-Tarskiの体系$\mathrm{R}$

$\mathcal{L}_A$上の次の公理図式からなる体系(各$m, n$ごとに一本ずつ、無限個ある)。
$\mathbf{R1}$ $\overline{m} + \overline{n} = \overline{m+n}$
$\mathbf{R2}$ $\overline{m} \cdot \overline{n} = \overline{m \cdot n}$
$\mathbf{R3}$ $\overline{m} \neq \overline{n}$ ($m \neq n$のとき)
$\mathbf{R4}$ $\forall x\big(x \le \overline{n} \to (x = \overline{0} \vee x = \overline{1} \vee \cdots \vee x = \overline{n})\big)$
$\mathbf{R5}$ $\forall x(x \le \overline{n} \vee \overline{n} \le x)$

$\mathrm{R}$が言っているのは要するに「具体的な数どうしの足し算・掛け算を正しく計算でき、違う数を区別でき、$\overline{n}$以下の数を列挙でき、任意の数を具体的な数と大小比較できる」ということだけである。無限個の公理を持つが、$\mathrm{Q}$よりも弱い。

$\mathrm{Q}$は$\mathrm{R}$を含む

$\mathbf{R1}$から$\mathbf{R5}$の各実例は$\mathrm{Q}$で証明可能である。

いずれも$m, n$についてのメタレベルの帰納法による、ルーチンな計算である。要点だけ示す。
$\mathbf{R1}$は$\mathbf{Q4}$, $\mathbf{Q5}$から$n$についての帰納法で、$\mathbf{R2}$は$\mathbf{Q6}$, $\mathbf{Q7}$と$\mathbf{R1}$から$n$についての帰納法で得られる。$\mathbf{R3}$は$\mathbf{Q1}$と$\mathbf{Q2}$から、$m, n$についての帰納法で得られる。
$\mathbf{R4}$は$n$についてのメタレベルの帰納法による。$n = 0$の場合を見ておこう。$x \le \overline{0}$は$\exists w(w+x = 0)$である。$\mathbf{Q3}$より$x = 0$または$x = s(u)$なる$u$がある。前者ならよい。後者なら$\mathbf{Q5}$より$w+x = w+s(u) = s(w+u)$であり、$\mathbf{Q2}$よりこれは$0$と等しくない。よって$x = \overline{0}$。
$\mathbf{R5}$も$n$についてのメタレベルの帰納法による。$\square$

この補題により、$\mathrm{R}$について証明したことはすべて$\mathrm{Q}$についても成り立つ。
$\mathbf{R4}$と$\mathbf{R5}$から、後で繰り返し使う$<$についての性質が出る。

数項についての順序

任意の自然数$n$について次が成り立つ。
$(1)$ $\mathrm{R} \vdash \forall x\big(x < \overline{n} \to (x = \overline{0} \vee \cdots \vee x = \overline{n-1})\big)$($n = 0$のときは右辺は矛盾、すなわち$\mathrm{R} \vdash \forall x \neg(x < \overline{0})$)
$(2)$ $\mathrm{R} \vdash \forall x\big(x < \overline{n} \vee x = \overline{n} \vee \overline{n} < x\big)$

$(1)$ $x < \overline{n}$は$x \le \overline{n} \wedge x \neq \overline{n}$である。$\mathbf{R4}$より$x = \overline{0} \vee \cdots \vee x = \overline{n}$が得られ、$x \neq \overline{n}$が最後の選言肢を除く。
$(2)$ $\mathbf{R5}$より$x \le \overline{n}$または$\overline{n} \le x$。前者の場合、$x = \overline{n}$かそうでないかで場合分けすれば、$x = \overline{n}$または$x < \overline{n}$。後者も同様に$x = \overline{n}$または$\overline{n} < x$。$\square$

なぜ弱い体系も用意するのか

理由1:定理が強くなる。「$\mathrm{PA}$は不完全である」より「$\mathrm{Q}$を含む(あるいは解釈できる)無矛盾で公理が計算可能な理論は、すべて不完全である」のほうが守備範囲が広い。後者からは、たとえば$\mathrm{ZFC}$(集合論)の不完全性も($\mathrm{ZFC}$が無矛盾なら)直ちに従う。$\mathrm{ZFC}$の中で自然数を構成すれば$\mathrm{Q}$が解釈できるからだ。
理由2:$\mathrm{Q}$が有限公理化されていることが効く場面がある。 前編のCherchの定理がそれである。$\mathrm{PA}$は帰納法図式のせいで無限個の公理を持ち、しかも有限個の公理では置き換えられないことが知られているので、あの議論は使えない。
理由3:何が本当に効いているのかが見える。 $\Sigma_1$完全性の証明を読むと、$\mathbf{R1}$から$\mathbf{R4}$がそれぞれどこで働いているかが分かる。残る$\mathbf{R5}$は表現定理で初めて働く。仮定を極限まで削ると、証明の骨格が透けて見えるのである。

論理式の階層

有界量化子と$\Delta_0$論理式

$\forall x \le t\ \varphi$は$\forall x(x \le t \to \varphi)$の、$\exists x \le t\ \varphi$は$\exists x(x \le t \wedge \varphi)$の略記とする($t$は$x$を含まない項)。これらを有界量化子と呼ぶ。$\forall x < t$と$\exists x < t$も同様に定めるが、$x < t$は$x \le t \wedge x \neq t$なので、これらは$\le$による有界量化子で書き直せる。

$\Delta_0$論理式

次の$(1)$から$(3)$で帰納的に定める論理式を$\Delta_0$論理式($\Sigma_0$論理式、$\Pi_0$論理式ともいう)という。
$(1)$ $t = u$と$t \le u$($t, u$は項)は$\Delta_0$論理式である。
$(2)$ $\varphi, \psi$が$\Delta_0$論理式ならば、$\neg\varphi$と$\varphi \to \psi$も$\Delta_0$論理式である(したがって$\wedge$, $\vee$, $\leftrightarrow$で作ったものも$\Delta_0$である)。
$(3)$ $\varphi$が$\Delta_0$論理式で、変数$x$が項$t$に現れないならば、$\forall x \le t\ \varphi$と$\exists x \le t\ \varphi$も$\Delta_0$論理式である。

一つ注意しておく。$t \le u$は$\exists w(w + t = u)$の略記なので、展開すると有界でない$\exists w$が現れる。しかし$\mathfrak{N}$では$w \le u$なので、真偽を確かめる探索は有界で済む。そこで$\Delta_0$論理式を作るときは、$t \le u$を展開せずに一つの基本形として扱う(有界量化子の中の$x \le t$も同様である)。
$\Delta_0$論理式の本質は、その真偽が有限回の計算で確かめられることである。$\forall x \le \overline{5}\ \varphi(x)$なら$x = 0,1,2,3,4,5$を全部試せばよい。無限の探索は必要ない。

$\Sigma_1$と$\Pi_1$

$\Sigma_1$論理式・$\Pi_1$論理式

$\theta$を$\Delta_0$論理式、$k \ge 0$とするとき、
・$\exists x_1 \cdots \exists x_k\ \theta$の形の論理式を$\Sigma_1$論理式という。
・$\forall x_1 \cdots \forall x_k\ \theta$の形の論理式を$\Pi_1$論理式という。

$k = 0$も許すので、$\Delta_0$論理式は$\Sigma_1$論理式でも$\Pi_1$論理式でもある。
直観的には次のように理解しておくとよい。
・$\Sigma_1$は「探せば見つかる」性質である。真であれば、証拠となる具体的な数が存在し、その数を提示すれば有限時間で検証できる。真であることは有限的に確認できるが、偽であることの確認には無限の探索が要る。
・$\Pi_1$は「反例がない」性質である。偽であることは有限的に確認できる(反例を一つ挙げればよい)が、真であることの確認には無限の探索が要る。
$\Sigma_1$論理式の否定は$\Pi_1$論理式と論理的に同値であり、逆も同様である。
上の定義は論理式の形についての構文的な条件だが、形は違っても中身は$\Sigma_1$である論理式も扱いたい。そこで次の言い方も用意しておく。

$T$上で$\Sigma_1$・$\Pi_1$

$T$を算術の理論とする。論理式$\varphi$が$T$上で$\Sigma_1$であるとは、ある$\Sigma_1$論理式$\psi$が存在して$T \vdash \varphi \leftrightarrow \psi$となることをいう。$T$上で$\Pi_1$も同様に定める。

たとえば$\Sigma_1$論理式の否定は、構文的には$\Pi_1$ではないが、論理的に同値な$\Pi_1$論理式に書き直せるので、どんな$T$上でも$\Pi_1$である。表現定理で「$\Sigma_1$論理式で表現される」と言うときは、この「$\mathrm{PA}$上で$\Sigma_1$」の意味である。

$\Sigma_1$完全性

一つ目の主役である。実質的な仕事は$\Delta_0$の場合にあるので、そこから始める。

閉項の計算

閉項の計算

$t$を閉項(変数を含まない項)とし、$\mathfrak{N}$におけるその値を$n$とする。このとき$\mathrm{R} \vdash t = \overline{n}$。

$t$の構成に関する帰納法。
$t = 0$のとき:$n = 0$であり$\overline{0} = 0$なので明らか。
$t = s(u)$のとき:$u$の値を$k$とすると$n = k+1$。帰納法の仮定より$\mathrm{R} \vdash u = \overline{k}$。よって$\mathrm{R} \vdash s(u) = s(\overline{k})$であり、$s(\overline{k})$は$\overline{k+1} = \overline{n}$そのものである。
$t = u + v$のとき:$u, v$の値をそれぞれ$k, l$とすると$n = k+l$。帰納法の仮定より$\mathrm{R} \vdash u = \overline{k}$, $\mathrm{R} \vdash v = \overline{l}$。$\mathbf{R1}$より$\mathrm{R} \vdash \overline{k} + \overline{l} = \overline{k+l}$。等号の推移律を使って$\mathrm{R} \vdash u+v = \overline{n}$。
$t = u \cdot v$のとき:$\mathbf{R2}$を使って同様。$\square$

$\Delta_0$完全性

代入結果

論理式$\varphi$の自由変数のすべてに数項を代入して得られる文を、$\varphi$の代入結果という。$\varphi$が文ならば、$\varphi$自身が$\varphi$の唯一の代入結果である。

$\Delta_0$完全性

$\varphi$を$\Delta_0$論理式とし、$\varphi^*$をその代入結果とする。このとき
・$\mathfrak{N} \models \varphi^*$ ならば $\mathrm{R} \vdash \varphi^*$
・$\mathfrak{N} \not\models \varphi^*$ ならば $\mathrm{R} \vdash \neg\varphi^*$

主張を文についてではなく代入結果について述べておくのには理由がある。有界量化子$\forall x \le t\ \psi(x)$の場合、帰納法の仮定を使いたい相手は$\psi(\overline{i})$だが、これは$\forall x \le t\ \psi(x)$の部分論理式ではなく、$\psi(x)$に数項を代入したものである。代入結果についての主張にしておけば、$\psi(\overline{i})$も$\psi$の代入結果なので、そのまま帰納法の仮定が使える。

$\varphi$が$\Delta_0$論理式であることの定義に関する帰納法。以下、閉項$t$の値を$|t|$と書く。
$(\text{i})$ $\varphi$が$t = u$の形のとき。$\varphi^*$は閉項どうしの等式$t^* = u^*$である。閉項の計算の補題より$\mathrm{R} \vdash t^* = \overline{|t^*|}$, $\mathrm{R} \vdash u^* = \overline{|u^*|}$。$|t^*| = |u^*|$ならば$\mathrm{R} \vdash t^* = u^*$。$|t^*| \neq |u^*|$ならば$\mathbf{R3}$より$\mathrm{R} \vdash \overline{|t^*|} \neq \overline{|u^*|}$、よって$\mathrm{R} \vdash \neg(t^* = u^*)$。
$(\text{ii})$ $\varphi$が$t \le u$の形のとき。$m = |t^*|$, $n = |u^*|$とおけば$\overline{m} \le \overline{n}$の場合に帰着する。
$m \le n$のとき:$k = n - m$とおくと$\mathbf{R1}$より$\mathrm{R} \vdash \overline{k} + \overline{m} = \overline{n}$。存在導入して$\mathrm{R} \vdash \exists w(w + \overline{m} = \overline{n})$、すなわち$\mathrm{R} \vdash \overline{m} \le \overline{n}$。
$m > n$のとき:$\mathbf{R4}$より$\mathrm{R} \vdash \overline{m} \le \overline{n} \to (\overline{m} = \overline{0} \vee \cdots \vee \overline{m} = \overline{n})$。各$i \le n$について$m \neq i$だから$\mathbf{R3}$より$\mathrm{R} \vdash \overline{m} \neq \overline{i}$。よって右辺の否定が導け、$\mathrm{R} \vdash \neg(\overline{m} \le \overline{n})$。
$(\text{iii})$ $\varphi$が$\neg\psi$や$\psi \to \chi$の形のとき($\wedge$, $\vee$で作ったものも同様)。$\varphi^*$は$\neg\psi^*$や$\psi^* \to \chi^*$の形で、$\psi^*, \chi^*$はそれぞれ$\psi, \chi$の代入結果だから、帰納法の仮定と命題論理から直ちに従う。たとえば$\varphi = \neg\psi$で$\mathfrak{N} \models \varphi^*$なら$\mathfrak{N} \not\models \psi^*$だから、帰納法の仮定より$\mathrm{R} \vdash \neg\psi^*$、すなわち$\mathrm{R} \vdash \varphi^*$。
$(\text{iv})$ $\varphi$が$\forall x \le t\ \psi$の形のとき。$\varphi^*$は$\forall x \le t^*\ \psi^*(x)$の形である。ここで$t^*$は閉項、$\psi^*(x)$は$\psi$の$x$以外の自由変数に数項を代入したものである。$n = |t^*|$とおく。閉項の計算の補題より$\mathrm{R} \vdash t^* = \overline{n}$なので、$\overline{n}$の場合を考えればよい。$\mathbf{R4}$より
$$ \mathrm{R} \vdash \forall x\big(x \le \overline{n} \to (x = \overline{0} \vee \cdots \vee x = \overline{n})\big) $$
各$i \le n$について、$\psi^*(\overline{i})$は$\psi$の代入結果であることに注意する。
$\mathfrak{N} \models \varphi^*$のとき:各$i \le n$について$\mathfrak{N} \models \psi^*(\overline{i})$だから、帰納法の仮定より$\mathrm{R} \vdash \psi^*(\overline{i})$。上の式と合わせて$\mathrm{R} \vdash \forall x \le \overline{n}\ \psi^*(x)$。
$\mathfrak{N} \not\models \varphi^*$のとき:ある$i \le n$で$\mathfrak{N} \not\models \psi^*(\overline{i})$。帰納法の仮定より$\mathrm{R} \vdash \neg\psi^*(\overline{i})$。また$(\text{ii})$より$\mathrm{R} \vdash \overline{i} \le \overline{n}$。よって$\mathrm{R} \vdash \neg\forall x \le \overline{n}\ \psi^*(x)$。
$(\text{v})$ $\varphi$が$\exists x \le t\ \psi$の形のとき。$(\text{iv})$と双対的である。$\square$

$\Sigma_1$完全性

$\Sigma_1$完全性

$\varphi$を$\Sigma_1$文とする。$\mathfrak{N} \models \varphi$ならば$\mathrm{R} \vdash \varphi$。したがって$\mathrm{Q}$、$\mathrm{PA}$、およびそれらを含む任意の理論でも$\varphi$は証明できる。

$\varphi = \exists x_1 \cdots \exists x_k\ \theta(x_1,\dots,x_k)$($\theta$は$\Delta_0$)とする。$\mathfrak{N} \models \varphi$だから、自然数$n_1,\dots,n_k$が存在して$\mathfrak{N} \models \theta(n_1,\dots,n_k)$。
$\theta(\overline{n_1},\dots,\overline{n_k})$は$\Delta_0$論理式$\theta$の代入結果であり、$\mathfrak{N}$で真だから、$\Delta_0$完全性より
$$ \mathrm{R} \vdash \theta(\overline{n_1},\dots,\overline{n_k}) $$
存在導入を$k$回適用して$\mathrm{R} \vdash \varphi$。$\square$

「$\mathrm{PA}$上で$\Sigma_1$」な文も、真ならば$\mathrm{PA}$で証明できる($\mathrm{R}$で証明できるとは限らない)。$\varphi$が$\mathrm{PA}$上で$\Sigma_1$であり、$\mathrm{PA} \vdash \varphi \leftrightarrow \psi$($\psi$は$\Sigma_1$)とする。$\mathfrak{N}$は$\mathrm{PA}$のモデルだから$\mathfrak{N} \models \varphi$なら$\mathfrak{N} \models \psi$、したがって$\mathrm{PA} \vdash \psi$、よって$\mathrm{PA} \vdash \varphi$。

証明の要点と限界

$\Delta_0$完全性の証明で使ったのは$\mathbf{R1}$, $\mathbf{R2}$, $\mathbf{R3}$, $\mathbf{R4}$である。つまり体系に要求されているのは
・具体的な数どうしの足し算・掛け算を計算できること($\mathbf{R1}$, $\mathbf{R2}$)
・違う数を区別できること($\mathbf{R3}$)
・「$\overline{n}$以下の数は$\overline{0}, \dots, \overline{n}$のいずれかである」と言えること($\mathbf{R4}$)
の三点だけである。$\mathrm{R}$の公理は、$\Sigma_1$完全性を成立させるのに必要なだけの計算能力を切り出したものなのだ。$\mathrm{R}$の公理が「なぜあの形なのか」の答えがここにある。
なお$\mathbf{R5}$(数項との大小の比較)はここでは使わなかった。$\mathbf{R5}$が効くのは表現定理である。

$\Pi_1$完全性は成り立たない

$\Sigma_1$完全性の「$\Sigma_1$文」を「$\Pi_1$文」に変えた主張は成り立たない。反例は
$$ \forall x(0+x = x) $$
でありこれは真な$\Pi_1$文だが、$\mathrm{Q} \nvdash \forall x(0+x=x)$である。$\mathrm{Q}$は$\Sigma_1$完全だが$\Pi_1$完全ではない。
$\Sigma_1$の場合は、真であることの証拠が具体的な数として一つ与えられ、そこから先は$\Delta_0$の有限的な計算になった。$\Pi_1$文にはそういう証拠がない。すべての$n$について$\mathrm{Q} \vdash 0 + \overline{n} = \overline{n}$が成り立っても、それらを束ねる全称命題は証明できないのである。この非対称性はあらためて論じる。

計算可能性

二つ目の主役、表現定理に向かう。まず計算可能性の言葉を整備する。

原始再帰的関数と再帰方程式

原始再帰的関数

$\mathbb{N}^k \to \mathbb{N}$の全域関数(定義域が$\mathbb{N}^k$であるような関数)のうち、次の初期関数
・零関数 $Z(x) = 0$
・後者関数 $s(x) = x+1$
・射影関数 $P^k_i(x_1,\dots,x_k) = x_i$
から出発して、合成
$$ f(\vec{x}) = h(g_1(\vec{x}), \dots, g_l(\vec{x})) $$
と原始再帰
$$ f(\vec{x}, 0) = g(\vec{x}) \qquad f(\vec{x}, y+1) = h(\vec{x}, y, f(\vec{x}, y)) $$
を有限回適用して得られるものを原始再帰的関数という。

原始再帰の定義に現れる二本の等式を、$f$の再帰方程式という。再帰方程式は、$f$の値を「一つ前の値」から順に決めていく漸化式である。$f(\vec x, 0)$は$g$で直接与えられ、$f(\vec x, 1)$は$h(\vec x, 0, f(\vec x, 0))$で、$f(\vec x, 2)$は$h(\vec x, 1, f(\vec x, 1))$で、というように定まる。最後の引数$y$についての帰納法により、この二本の式は$f$を一意に決定する。
具体例を見よう。足し算$\mathrm{add}(x,y) = x+y$は
$$ \mathrm{add}(x, 0) = x \qquad \mathrm{add}(x, y+1) = s(\mathrm{add}(x,y)) $$
という再帰方程式で定義される。掛け算は
$$ \mathrm{mult}(x,0) = 0 \qquad \mathrm{mult}(x,y+1) = \mathrm{add}(\mathrm{mult}(x,y), x) $$
である。
ここでRobinsonの$\mathrm{Q}$の公理系を見返してほしい。$\mathrm{Q}$(と$\mathrm{PA}$)の$\mathbf{Q4}$, $\mathbf{Q5}$は
$$ \forall x(x+0=x) \qquad \forall x\forall y(x+s(y)=s(x+y)) $$
であった。これは足し算の再帰方程式を、体系内の文として書き下したものにほかならない。$\mathbf{Q6}$, $\mathbf{Q7}$も掛け算の再帰方程式である。$\mathrm{Q}$や$\mathrm{PA}$の公理が「なぜあの形なのか」の答えがこれである。

再帰的関数

原始再帰的関数は「forループだけで書けるプログラム」に対応する。ループ回数が事前に決まっているので、必ず停止する。しかし停止する計算のすべてがこれで書けるわけではない(Ackermann関数が有名な反例である)。そこで、探索を許す。

最小化と再帰的関数

$g(\vec x, y)$を全域関数とし、任意の$\vec x$に対して$g(\vec x, y) = 0$となる$y$が存在するとする。このとき
$$ f(\vec{x}) = \mu y[ g(\vec x, y) = 0 ] = (g(\vec x, y) = 0 \text{ となる最小の } y) $$
を$g$の最小化という。初期関数から出発して、合成・原始再帰・最小化を有限回適用して得られる全域関数を再帰的関数、あるいは帰納的関数という。$f$が再帰的関数であることを、$f$は計算可能であるともいう。

再帰的関数は「while ループも使ってよいプログラム(ただし必ず停止する)」に対応する。さらに、直観的な意味でアルゴリズムによって計算できる全域関数は、ちょうど再帰的関数であると考えられている。これをChurch-Turingのテーゼという。「アルゴリズムで計算できる」は数学的に定義された概念ではないので、テーゼは定理ではない。再帰的関数の定義が直観を正しくとらえている、という主張である。
したがって、定義した「計算可能」と、直観的な「アルゴリズムで計算できる」は区別して読んでほしい。表現定理のように「計算可能関数は…」と述べる定理は、再帰的関数についての数学的な定理であり、テーゼには頼らない。テーゼを使うのは、アルゴリズムを書いて計算できることを示し、そこから再帰的だと結論するときである。

再帰的関係と再帰的可算集合

特性関数と再帰的関係

$P \subseteq \mathbb{N}^k$に対し、その特性関数を
$$ P^{\circ}(\vec x) = \begin{cases} 1 & (P(\vec x) \text{ が成り立つとき}) \\ 0 & (\text{そうでないとき}) \end{cases} $$
と定める。$P^{\circ}$が再帰的関数であるとき、$P$は再帰的関係であるという。$P$が再帰的であることを、$P$は計算可能、あるいは決定可能であるともいう。

「$P(\vec x)$かどうかを必ず有限時間で判定するアルゴリズムがある」というのが直観的な意味である。$P$が計算可能なら補集合も計算可能であることに注意しておく。

再帰的可算集合

$P \subseteq \mathbb{N}^k$が再帰的可算(recursively enumerable, r.e.)、あるいは帰納的可算であるとは、次の同値な条件のいずれかが成り立つことをいう(同値性は計算可能性理論の基本的な事実であり、ここでは証明しない)。
$1.$ $P = \emptyset$であるか、またはある再帰的関数$f$によって$P = \lbrace f(0), f(1), f(2), \dots \rbrace$と枚挙できる($k \ge 2$のときは$f$の値を$k$個組とする)
$2.$ ある再帰的関係$S \subseteq \mathbb{N}^{k+1}$が存在して$P(\vec x) \iff \exists w S(\vec x, w)$
$3.$ $P$は$\Sigma_1$論理式で$\mathfrak{N}$において定義される

直観的には「$P(\vec x)$ならば有限時間でそれが確認できるが、そうでないときは永遠に待たされるかもしれない」という状況である。前に述べた$\Sigma_1$の直観(探せば見つかる)と条件$3$がぴったり対応している。$\Sigma_1$とは、計算可能性の言葉ではr.e.のことなのである。 計算可能ならばr.e.だが、逆は成り立たない(停止問題が反例)。

有限列の符号化

なぜ必要か

表現定理は、再帰的関数の定義に沿った帰納法で証明したくなる。ところが原始再帰の場合が難しい。$f(\vec x, y)$の値を言うには「$f(\vec x, 0), \dots, f(\vec x, y)$という長さ$y+1$の列が存在して、隣り合う項が$h$で結ばれている」と言わねばならないが、算術の言語には「有限列」という対象がない。あるのは自然数だけである。
そこで有限列を一つの自然数に符号化する。符号化ができれば、原始再帰を最小化で置き換えられる。すると表現定理の帰納法は基本関数・合成・最小化の三つの場合だけで済み、一番厄介な原始再帰の場合が消える。

対関数

まず二つの自然数を一つに符号化する。

対関数

$$ \mathrm{pair}(x,y) = \frac{(x+y)(x+y+1)}{2} + x $$

これは自然数の対から自然数への全単射である($x+y$の値ごとに斜めに数え上げていくカントールの数え方そのものである)。逆関数$\mathrm{1st}$, $\mathrm{2nd}$を
$$ \mathrm{1st}(z) = \mu x\big(\exists y < z+1\ (z = \mathrm{pair}(x,y))\big) \qquad \mathrm{2nd}(z) = \mu y\big(\exists x < z+1\ (z = \mathrm{pair}(x,y))\big) $$
と定めれば$\mathrm{1st}(\mathrm{pair}(x,y)) = x$, $\mathrm{2nd}(\mathrm{pair}(x,y)) = y$となる。

$\beta$関数と中国剰余定理

対では長さ$2$の列しか符号化できない。任意の長さの列を扱うために、Gödelは次の関数を導入した。

Gödelの$\beta$関数

$\mathrm{rm}(x,y)$を「$x$を$y$で割った余り」とし、
$$ \beta(a,b,i) = \mathrm{rm}\big(a,\ (i+1)b + 1\big) $$
と定める。

三つの引数のうち$a$と$b$を固定すると、$i$を動かして得られる$\beta(a,b,0), \beta(a,b,1), \beta(a,b,2), \dots$が「列」になる。次の定理が言うのは、$a$と$b$をうまく選べばこの列の先頭部分を好きなように指定できるということである。

$\beta$関数定理

自然数の任意の有限列$x_0, x_1, \dots, x_n$に対して、自然数$a$と$b$が存在して
$$ 0 \le i \le n \text{ なるすべての } i \text{ について } \beta(a,b,i) = x_i $$

$m = \max(n, x_0, \dots, x_n)$とおき、$\delta(m) = \mathrm{lcm}(1, 2, \dots, m)$($1$から$m$までの最小公倍数。$\delta(0) = 1$と約束する)とする。$b = \delta(m)$として、$y_i = (i+1)b+1$($0 \le i \le n$)とおく。
$y_0, \dots, y_n$は互いに素である。 $i < j \le n$とし、素数$p$が$y_i$と$y_j$の共通の約数だとする。$p$は$y_j - y_i = (j-i)b$を割る。ここで$p$は$b$を割らない。もし$p \mid b$なら$p \mid y_i = (i+1)b+1$から$p \mid 1$となって不合理だからである。よって$p \mid (j-i)$。ところが$0 < j-i \le n \le m$だから$(j-i)$は$1$から$m$までのどれかであり、$(j-i) \mid \delta(m) = b$。したがって$p \mid b$となって矛盾。
各$i$について$x_i < y_i$である。 実際$x_i \le m \le \delta(m) = b < (i+1)b+1 = y_i$。
以上より、中国剰余定理から、$a \equiv x_i \pmod{y_i}$($0 \le i \le n$)を満たす自然数$a$が存在する。$x_i < y_i$だから$a$を$y_i$で割った余りはちょうど$x_i$であり、$\beta(a,b,i) = x_i$。$\square$

長さがいくらでも長い列を、たった二つの自然数$a, b$で表現できる。 しかも$\beta$は割り算の余りしか使わないので、算術の言語で素直に書ける。

有限列コード化定理

$a$と$b$の二つを持ち歩くのは煩わしいので、対関数で一つにまとめる。

$\mathrm{decode}$

$$ \mathrm{decode}(e, i) = \beta\big(\mathrm{1st}(e),\ \mathrm{2nd}(e),\ i\big) $$

有限列コード化定理

自然数の任意の有限列$x_0, \dots, x_n$に対して、自然数$e$が存在して
$$ 0 \le i \le n \text{ なるすべての } i \text{ について } \mathrm{decode}(e,i) = x_i $$

$\beta$関数定理で得られる$a, b$を用いて$e = \mathrm{pair}(a,b)$とすればよい。$\square$

以下、この$e$を列のコードと呼ぶ。

原始再帰の消去

$\mathrm{Recu}$

$\mathrm{Recu}$

自然数上の全域関数のクラス$\mathrm{Recu}$を次の$(1)$から$(3)$で定める。
$(1)$ 足し算$+$、掛け算$\cdot$、射影関数$P^k_i$、および等号の特性関数
$$ \mathrm{equal}(x,y) = \begin{cases} 1 & (x = y \text{ のとき}) \\ 0 & (x \neq y \text{ のとき}) \end{cases} $$
はすべて$\mathrm{Recu}$に属す。
$(2)$ $\mathrm{Recu}$に属する関数から合成で得られる関数は$\mathrm{Recu}$に属す。
$(3)$ $\mathrm{Recu}$に属する関数から最小化で得られる関数は$\mathrm{Recu}$に属す。

再帰的関数の定義と見比べてほしい。$\mathrm{Recu}$は足し算・掛け算・等号を最初から与える代わりに、零関数・後者関数・原始再帰を取り除いたものである。$\mathrm{Recu}$に属する関数が再帰的であることは直ちに分かる($+$, $\cdot$, $\mathrm{equal}$はいずれも原始再帰的だから)。この節の目標はその逆である。
なお、特性関数が$\mathrm{Recu}$に属する述語を$\mathrm{Recu}$述語と呼ぶことにする。

$\mathrm{Recu}$の基本的な閉包性

基本関数

$k$変数の零関数$Z_k(\vec x) = 0$、$1$変数の恒等的に$1$をとる関数$\mathrm{one}(x) = 1$、および後者関数$s(x)$はすべて$\mathrm{Recu}$に属す。

$Z_k(\vec x) = \mu y\big(P^{k+1}_{k+1}(\vec x, y) = 0\big) = \mu y (y = 0) = 0$。
$\mathrm{one}(x) = \mu y\big(\mathrm{equal}(Z_2(x,y), P^2_2(x,y)) = 0\big) = \mu y\big(\mathrm{equal}(0,y) = 0\big)$。$\mathrm{equal}(0,0) = 1 \neq 0$、$\mathrm{equal}(0,1) = 0$だから値は$1$である。
$s(x) = P^1_1(x) + \mathrm{one}(x)$。$\square$

論理結合子

$\mathrm{Recu}$述語から$\neg$, $\wedge$, $\vee$で作られる述語もまた$\mathrm{Recu}$述語である。

$(\neg A)^{\circ}(\vec x) = \mathrm{equal}(A^{\circ}(\vec x), 0)$、$(A \wedge B)^{\circ}(\vec x) = A^{\circ}(\vec x) \cdot B^{\circ}(\vec x)$、$(A \vee B)^{\circ} = (\neg(\neg A \wedge \neg B))^{\circ}$。$\square$

述語の最小化

$A(\vec x, y)$を$\mathrm{Recu}$述語とし、各$\vec x$に対して$A(\vec x, y)$を満たす$y$があるとする。このとき、$A(\vec x, y)$を満たす最小の$y$を値とする関数$f(\vec x) = \mu y A(\vec x, y)$は$\mathrm{Recu}$に属す。

方針:最小化は関数の値が$0$になる点を探す。そこで、$A$が成り立つときにちょうど$0$になる関数$(\neg A)^{\circ}$を使う。

補題9より$(\neg A)^{\circ}$は$\mathrm{Recu}$に属し、$A(\vec x, y)$が成り立つときちょうど$0$になる。仮定より、各$\vec x$に対して$(\neg A)^{\circ}(\vec x, y) = 0$となる$y$があるので、$\mathrm{Recu}$の定義の$(3)$より
$$ f(\vec x) = \mu y\big[(\neg A)^{\circ}(\vec x, y) = 0\big] $$
は$\mathrm{Recu}$に属す。$\square$

有界量化子

$A(\vec x, y)$を$\mathrm{Recu}$述語、$t(\vec x)$を$\mathrm{Recu}$に属する関数とする。このとき、$\vec x$についての述語
$$ (\exists y < t(\vec x))A(\vec x, y) \qquad (\forall y < t(\vec x))A(\vec x, y) $$
はともに$\mathrm{Recu}$述語である。

方針:$\mathrm{Recu}$で使える探索は最小化だけで、「$t$回で打ち切る」ことができない。そこで探す条件に$y = t(\vec x)$を加え、探索が遅くとも$t(\vec x)$で止まるようにする。

$m(\vec x) = \mu y\big(y = t(\vec x) \vee A(\vec x, y)\big)$とおく。この条件は$\mathrm{Recu}$述語である($y = t(\vec x)$の特性関数は$\mathrm{equal}(y, t(\vec x))$で、$\vee$は補題9で保たれる)。また$y = t(\vec x)$で必ず成り立つ。よって前の補題より$m$は$\mathrm{Recu}$に属し、$m(\vec x) \le t(\vec x)$である。
$m(\vec x) < t(\vec x)$は「$t(\vec x)$より前に条件を満たす$y$がある」ということであり、$y < t(\vec x)$では条件は$A(\vec x, y)$と同じである。したがって
$$ (\exists y < t(\vec x))A(\vec x, y) \iff m(\vec x) < t(\vec x) \iff m(\vec x) \neq t(\vec x) $$
(後の同値は$m(\vec x) \le t(\vec x)$による)。右端は$\mathrm{Recu}$述語$m(\vec x) = t(\vec x)$の否定なので、$\mathrm{Recu}$述語である。$\forall$は$(\forall y < t)A \iff \neg(\exists y < t)\neg A$から従う。$\square$

符号化の関数

$\mathrm{half}$, $\mathrm{pair}$, $\mathrm{1st}$, $\mathrm{2nd}$, $\mathrm{rm}$, $\beta$, $\mathrm{decode}$はすべて$\mathrm{Recu}$に属す。

定数$1$, $2$は$\mathrm{one}$から足し算で作れる。以下で最小化する条件はどれも、すでに$\mathrm{Recu}$と分かった関数の等式($\mathrm{equal}$)を論理結合子と有界量化子で組み合わせたものなので、$\mathrm{Recu}$述語である。よって補題10を使うには、条件を満たす値が必ずあることを示せばよい。あわせて、最小値が意図した値であることも確かめる。
・$\mathrm{half}(x) = \mu y\big((2\cdot y = x) \vee (2\cdot y + 1 = x)\big)$とおく。条件は$2y \le x \le 2y+1$と同じで、これを満たす$y$は$\lfloor x/2 \rfloor$ただ一つである。よって$\mathrm{half}(x) = \lfloor x/2 \rfloor$。
・$(x+y)(x+y+1)$は連続する二数の積で偶数なので、$\mathrm{pair}(x,y) = \mathrm{half}\big((x+y)(x+y+1)\big) + x$。
・$\mathrm{1st}(z) = \mu x(\exists y < z+1)(z = \mathrm{pair}(x,y))$、$\mathrm{2nd}(z) = \mu y(\exists x < z+1)(z = \mathrm{pair}(x,y))$だった。$\mathrm{pair}$は全単射なので、$z = \mathrm{pair}(x_0, y_0)$となる$(x_0, y_0)$がただ一組ある。$\frac{n(n+1)}{2} \ge n$より$\mathrm{pair}(x,y) \ge (x+y) + x$なので、$x_0, y_0 \le z$であり、上限$z+1$の範囲に入る。よって$\mathrm{1st}$の条件を満たす$x$は$x_0$だけ、$\mathrm{2nd}$の条件を満たす$y$は$y_0$だけであり、$\mathrm{1st}(z) = x_0$, $\mathrm{2nd}(z) = y_0$。
・$\mathrm{rm}(x,y) = \mu z(\exists q < x+1)(x = q\cdot y + z)$とおく。$z = x$は$q = 0$で条件を満たす。$y \ge 1$のとき、条件を満たす$z$は、$q\cdot y \le x$を満たす$q$を使って$z = x - q\cdot y$と書ける数である(このとき$q \le x$なので、上限で漏れる$q$はない)。最小になるのは$q$が商のときで、そのときの$z$が余りである。$y = 0$のときは$\mathrm{rm}(x, 0) = x$となるが、$\beta$では割る数が$1$以上なので、この値は使わない。
・$\beta$と$\mathrm{decode}$は、定義のとおり合成で得られる。$\square$

原始再帰の消去

原始再帰の消去

任意の再帰的関数$f$は$\mathrm{Recu}$に属す。

再帰的関数の定義に関する帰納法による。$f$が零関数や後者関数の場合は補題8からいえる。射影関数の場合や、合成・最小化で得られた場合は$\mathrm{Recu}$の定義と帰納法の仮定から明らかである。
問題は$f$が$g$と$h$から原始再帰で得られた場合である。すなわち
$$ f(\vec x, 0) = g(\vec x) \qquad f(\vec x, y+1) = h(\vec x, y, f(\vec x, y)) $$
とする。ここで、列$f(\vec x, 0), f(\vec x, 1), \dots, f(\vec x, y)$のコードを$\vec x, y$から求める関数を考える。
$$ t(\vec x, y) = \mu e\Big(\mathrm{decode}(e,0) = g(\vec x) \ \wedge\ (\forall i < y)\big(\mathrm{decode}(e,i+1) = h(\vec x, i, \mathrm{decode}(e,i))\big)\Big) $$
まず、このような$e$が存在することを確認する。$i = 0, 1, \dots, y$に対して$\mathrm{decode}(e,i) = f(\vec x, i)$となる$e$が有限列コード化定理により存在し、それが上の条件を満たす。
逆に、条件を満たす$e$ならどれでも、$i = 0, 1, \dots, y$について$\mathrm{decode}(e,i) = f(\vec x, i)$となる。$i = 0$では条件の前半と$f(\vec x, 0) = g(\vec x)$から、$i$から$i+1$へは条件の後半と再帰方程式から従う($i$についての帰納法)。条件を満たす最小の$e$である$t(\vec x, y)$も、もちろんこの性質を持つ。
次に、最小化の中身が$\mathrm{Recu}$述語であることを確認する。$g$と$h$は帰納法の仮定より$\mathrm{Recu}$に属し、$\mathrm{decode}$も補題12より$\mathrm{Recu}$に属す。等式は$\mathrm{equal}$で書けるので$\mathrm{Recu}$述語、有界全称量化子と$\wedge$は補題9,11より$\mathrm{Recu}$述語を保つ。よって$t$は$\mathrm{Recu}$に属す。
最後に
$$ f(\vec x, y) = \mathrm{decode}\big(t(\vec x, y),\ y\big) $$
となるので、$f$も$\mathrm{Recu}$に属す。$\square$

列という構造を持ち込む代わりに、列のコードという一つの自然数を最小化で探しにいくのがこの証明のポイントである。探索が停止することを保証しているのが有限列コード化定理である。以下、「再帰的関数」は「$\mathrm{Recu}$に属する関数」と読み替えてよい。

表現可能性

定義

$T$を算術の理論とする。

表現可能性

$k$変数全域関数$f$が$T$で論理式$\varphi(x_1,\dots,x_k,y)$によって表現されるとは、任意の自然数$n_1,\dots,n_k$について
$$ T \vdash \forall y\Big(y = \overline{f(n_1,\dots,n_k)} \leftrightarrow \varphi(\overline{n_1},\dots,\overline{n_k},y)\Big) $$
が成り立つことをいう。このような$\varphi$が存在するとき$f$は$T$で表現可能であるという。この$\varphi$を$f$のグラフの論理式と呼ぶ。
$k$項関係$P$が$T$で論理式$\varphi(x_1,\dots,x_k)$によって表現されるとは、任意の$\vec n$について
・$P(\vec n)$が成り立つとき $T \vdash \varphi(\overline{n_1},\dots,\overline{n_k})$
・$P(\vec n)$が成り立たないとき $T \vdash \neg\varphi(\overline{n_1},\dots,\overline{n_k})$
の両方が成り立つことをいう。

定義の要点は、$T$が実際に証明することを要求している点である。単に標準モデルで正しいだけでは足りない。だから表現可能性は意味論ではなく構文論の概念である。

表現可能な関数は計算可能

$\mathrm{PA}$で表現可能な関数は計算可能である。

方針:$f(\vec n)$の値を、$\mathrm{PA}$の証明の中から探し出す。$\mathrm{PA}$の証明を順に調べ、「$\varphi(\overline{\vec n}, \overline{m})$の証明」が見つかったら、その$m$を答えとするのである。探す$m$を先に決めておくのではなく、見つかった証明から$m$を読み取ることに注意してほしい。$m$を一つ決めて探すと、その$m$が答えでなかったときに証明が見つからず、探索が終わらないからである。

$f$が$\varphi(\vec x, y)$で表現されているとし、入力$\vec n$を一つ固定する。
手順:論理式の有限列を、もれなく一列に並べて順に調べる。調べている列が、ある$m$についての$\varphi(\overline{\vec n}, \overline{m})$の$\mathrm{PA}$での証明になっていたら、その$m$を出力して止まる。
この手順は機械的に実行できる。
・論理式の有限列は、もれなく一列に並べられる。たとえば記号に番号を付けておき、段階$s = 1, 2, 3, \dots$で「長さが$s$以下で、番号が$s$以下の記号だけを使う列」(有限個)を書き出していけば、どの列もいつかは現れる。
・与えられた列が$\mathrm{PA}$の証明かどうかは、各行が公理($\mathrm{PA}$の公理か論理の公理)であるか、前の行から推論規則で得られるかを確かめれば判定できる。どれも形を見れば分かる。最後の行が、ある$m$について$\varphi(\overline{\vec n}, \overline{m})$の形をしているかどうかも形で分かり、そのときの$m$も読み取れる。
表現の定義から分かること:止まることと正しいことは、次の二つの事実から出る。表現の定義の$\forall y$に数項$\overline{m}$を代入すると、どの$m$についても
$$ \mathrm{PA} \vdash \overline{m} = \overline{f(\vec n)} \leftrightarrow \varphi(\overline{\vec n}, \overline{m}) $$
である。
$(\text{a})$ $m = f(\vec n)$なら、左辺は証明できるので、$\mathrm{PA} \vdash \varphi(\overline{\vec n}, \overline{m})$。
$(\text{b})$ $m \neq f(\vec n)$なら、$\mathbf{R3}$より左辺の否定が証明できるので、$\mathrm{PA} \vdash \neg\varphi(\overline{\vec n}, \overline{m})$。
止まること(停止性): $(\text{a})$より、$\varphi(\overline{\vec n}, \overline{f(\vec n)})$の$\mathrm{PA}$での証明がある。それは並べた列のどこかに現れるので、手順は遅くともそこで止まる。
正しいこと(正当性):手順は、それより前に別の証明を見つけて止まるかもしれない。そこで、出力される$m$が必ず$f(\vec n)$であることを示す。$m$が出力されたなら、$\mathrm{PA} \vdash \varphi(\overline{\vec n}, \overline{m})$である。もし$m \neq f(\vec n)$なら、$(\text{b})$より$\mathrm{PA} \vdash \neg\varphi(\overline{\vec n}, \overline{m})$でもあるので、$\mathrm{PA}$は矛盾する。しかし$\mathfrak{N}$は$\mathrm{PA}$のモデルなので、$\mathrm{PA}$は無矛盾である。よって$m = f(\vec n)$。
以上より、この手順はどの入力に対しても止まり、$f(\vec n)$を出力する。このような手順で計算できる関数は、Church-Turingのテーゼにより再帰的、すなわち計算可能である。$\square$

$(\text{a})$と$(\text{b})$を合わせると、関係「$f(\vec n) = m$」が$\varphi$で表現されている、ということになる。つまり$\mathrm{PA}$は、正しい値については$\varphi(\overline{\vec n}, \overline{m})$を証明し、正しくない値については否定を証明する。前者が停止性を、後者が($\mathrm{PA}$の無矛盾性と合わせて)正当性を支えているのである。
次節の表現定理はこの補題の逆を主張しており、合わせて計算可能性と表現可能性は同値になる。

表現定理

定理

表現定理

任意の計算可能関数は、$\mathrm{PA}$上で$\Sigma_1$な論理式ならびに$\mathrm{PA}$上で$\Pi_1$な論理式によって、$\mathrm{PA}$において表現される。

「$\mathrm{PA}$上で$\Sigma_1$」の意味はすでに定めた。まず$\mathrm{PA}$で証明し、より弱い体系での成立については後に述べる。

証明の方針

示すこと:定理13より、計算可能関数はすべて$\mathrm{Recu}$に属す。そこで、$\mathrm{Recu}$の定義に関する帰納法で次を示す。

$\mathrm{Recu}$に属する各関数$f(\vec x)$に対して、$\mathrm{PA}$上で$\Sigma_1$な論理式$\varphi^\Sigma(\vec x, y)$と、$\mathrm{PA}$上で$\Pi_1$な論理式$\varphi^\Pi(\vec x, y)$が取れて、任意の$\vec n$について
$$ \mathrm{PA} \vdash \forall y\big(y = \overline{f(\vec n)} \leftrightarrow \varphi^\Sigma(\overline{\vec n},y)\big) \qquad \mathrm{PA} \vdash \forall y\big(y = \overline{f(\vec n)} \leftrightarrow \varphi^\Pi(\overline{\vec n},y)\big) $$
が成り立つ。

場合分けは$\mathrm{Recu}$の定義どおり、基本関数・合成・最小化の三つである。原始再帰の場合がないのは、原始再帰を消去しておいたおかげである。
なぜ二つ作るのか:最小化の場合を先取りして見てみよう。$f(\vec x) = \mu y[g(\vec x,y) = 0]$を表現する論理式は、素朴には
$$ (g(\vec x, y) = 0) \wedge \forall z < y\ \neg( g(\vec x, z) = 0 )$$
という形になる。後半では、$g$のグラフの論理式が否定の下に現れる。$\Sigma_1$論理式の否定は$\Pi_1$であって$\Sigma_1$ではないので、$\Sigma_1$版のグラフの論理式を素朴に使うと、ここで$\Sigma_1$の形が崩れる。
そこで、否定の下には$\Pi_1$版を、否定の外には$\Sigma_1$版を置く。すると全体が、$\mathrm{PA}$上でふたたび$\Sigma_1$になる(有界量化子の処理に収集原理を使う)。$\Pi_1$版を作るときは役割を入れ替える。二つの階層が互いを支え合って帰納法が回るのである。
表現の確かめ方:合成と最小化では、表現の条件を次の手順で確かめる(基本関数では同値を直接示す)。$\vec n$を固定して$m = f(\vec n)$とおく。論理式$\varphi$が$f$を表現することを示すには、次の二つを示せばよい。
・$(\to)$:$\mathrm{PA} \vdash \varphi(\overline{\vec n}, \overline{m})$。ここから、等号の代入で$\mathrm{PA} \vdash y = \overline{m} \to \varphi(\overline{\vec n}, y)$が出る。
・$(\leftarrow)$:$\mathrm{PA} \vdash \varphi(\overline{\vec n}, y) \to y = \overline{m}$($y$は変数のまま)。
二つがそろえば$\mathrm{PA} \vdash y = \overline{m} \leftrightarrow \varphi(\overline{\vec n}, y)$であり、$y$について一般化すれば表現の条件になる。
反対に、帰納法の仮定からは次の三つを取り出して使う。関数$g$が論理式$\psi$で表現されているとし、$\vec n$を固定して$j = g(\vec n)$とおく。
$(\text{a})$ $\mathrm{PA} \vdash \psi(\overline{\vec n}, \overline{j})$。表現の条件の$\forall y$に$\overline{j}$を代入すればよい。
$(\text{b})$ $\mathrm{PA} \vdash \psi(\overline{\vec n}, z) \to z = \overline{j}$。$\forall y$に変数$z$(どの変数でもよい)を代入すればよい。
$(\text{c})$ $i \neq j$なら$\mathrm{PA} \vdash \neg\psi(\overline{\vec n}, \overline{i})$。$\forall y$に$\overline{i}$を代入すると$\mathrm{PA} \vdash \psi(\overline{\vec n}, \overline{i}) \to \overline{i} = \overline{j}$であり、$\mathbf{R3}$より$\mathrm{PA} \vdash \overline{i} \neq \overline{j}$だからである。
使う論理の規則:各段では、一階述語論理の次の規則を使う。
・命題論理のトートロジーに論理式を代入したものは証明できる(対偶、二重否定、De Morgan、$(A \vee B) \wedge \neg B \to A$など)。
・等号:反射律$t = t$、対称律、推移律、および代入$\mathrm{PA} \vdash s = t \to \big(\theta(s) \to \theta(t)\big)$。
・全称:$\mathrm{PA} \vdash \forall z \theta(z) \to \theta(t)$(代入)。$\mathrm{PA} \vdash \theta(z)$なら$\mathrm{PA} \vdash \forall z \theta(z)$(一般化)。
・存在:$\mathrm{PA} \vdash \theta(t) \to \exists z \theta(z)$(存在導入)。$z$が$\rho$に自由に現れないとき、$\mathrm{PA} \vdash \theta(z) \to \rho$なら$\mathrm{PA} \vdash \exists z \theta(z) \to \rho$(存在除去)。これは、$\theta(z) \to \rho$を$z$について一般化し、$\forall z\big(\theta(z) \to \rho\big) \to \big(\exists z \theta(z) \to \rho\big)$を使えば得られる。

基本関数の場合

以下の論理式はどれも$\Delta_0$なので、$\Sigma_1$でも$\Pi_1$でもある。そこで$\varphi^\Sigma = \varphi^\Pi = \varphi$と取る。基本関数では、表現の条件の同値を直接示す。
足し算:$\varphi(x_1, x_2, y) \equiv (y = x_1 + x_2)$とする。$\mathbf{R1}$より$\mathrm{PA} \vdash \overline{n_1 + n_2} = \overline{n_1} + \overline{n_2}$なので、等号の推移律から
$$ \mathrm{PA} \vdash y = \overline{n_1 + n_2} \leftrightarrow y = \overline{n_1} + \overline{n_2} $$
右辺が$\varphi(\overline{n_1}, \overline{n_2}, y)$である。$y$について一般化すれば表現の条件になる。
掛け算:$\varphi(x_1, x_2, y) \equiv (y = x_1 \cdot x_2)$とし、$\mathbf{R2}$を使って同様。
射影関数:$\varphi(x_1, \dots, x_k, y) \equiv (y = x_i)$とする。$P^k_i(\vec n) = n_i$なので、示すべきは$\mathrm{PA} \vdash y = \overline{n_i} \leftrightarrow y = \overline{n_i}$であり、これは自明である。
等号の特性関数:$x_1 \neq x_2$を$\neg(x_1 = x_2)$の略記として
$$ \varphi(x_1, x_2, z) \equiv (x_1 = x_2 \wedge z = \overline{1}) \vee (x_1 \neq x_2 \wedge z = \overline{0}) $$
とする。二つの場合に分け、それぞれ同値を二段に分けて示す。
$(\text{i})$ $n_1 = n_2$のとき:$n = n_1$と書くと$\mathrm{equal}(n, n) = 1$なので、示すべきは$\mathrm{PA} \vdash z = \overline{1} \leftrightarrow \varphi(\overline{n}, \overline{n}, z)$である。
・$\mathrm{PA} \vdash z = \overline{1} \leftrightarrow (\overline{n} = \overline{n} \wedge z = \overline{1})$。$\mathrm{PA} \vdash \overline{n} = \overline{n}$だからである。
・$\mathrm{PA} \vdash (\overline{n} = \overline{n} \wedge z = \overline{1}) \leftrightarrow \varphi(\overline{n}, \overline{n}, z)$。$\to$は選言の導入で明らか。$\leftarrow$は、第二の選言肢が否定できることによる。実際、$\mathrm{PA} \vdash \overline{n} = \overline{n}$から、二重否定で$\mathrm{PA} \vdash \neg(\overline{n} \neq \overline{n})$、選言導入で$\mathrm{PA} \vdash \neg(\overline{n} \neq \overline{n}) \vee \neg(z = \overline{0})$、De Morganで$\mathrm{PA} \vdash \neg(\overline{n} \neq \overline{n} \wedge z = \overline{0})$となる。あとはトートロジー$(A \vee B) \wedge \neg B \to A$を使えばよい。
$(\text{ii})$ $n_1 \neq n_2$のとき:$\mathrm{equal}(n_1, n_2) = 0$なので、示すべきは$\mathrm{PA} \vdash z = \overline{0} \leftrightarrow \varphi(\overline{n_1}, \overline{n_2}, z)$である。
・$\mathrm{PA} \vdash z = \overline{0} \leftrightarrow (\overline{n_1} \neq \overline{n_2} \wedge z = \overline{0})$。$\mathbf{R3}$より$\mathrm{PA} \vdash \overline{n_1} \neq \overline{n_2}$だからである。
・$\mathrm{PA} \vdash (\overline{n_1} \neq \overline{n_2} \wedge z = \overline{0}) \leftrightarrow \varphi(\overline{n_1}, \overline{n_2}, z)$。$(\text{i})$と同様で、今度は$\mathrm{PA} \vdash \overline{n_1} \neq \overline{n_2}$から、選言導入とDe Morganで第一の選言肢$\overline{n_1} = \overline{n_2} \wedge z = \overline{1}$が否定できる。
どちらの場合も、最後に$z$について一般化すればよい。

合成の場合

記号を簡単にするため$f(\vec x) = h(g(\vec x))$とする(一般の$f(\vec x) = h(g_1(\vec x),\dots,g_l(\vec x))$でも議論は同じである)。
帰納法の仮定より、$g$に対して$\psi^\Sigma$,$\psi^\Pi$が、$h$に対して$\chi^\Sigma$,$\chi^\Pi$が取れて、任意の$\vec n$,$k$について
$$ \mathrm{PA} \vdash \forall y\big(y = \overline{g(\vec n)} \leftrightarrow \psi^\Sigma(\overline{\vec n},y)\big) \qquad \mathrm{PA} \vdash \forall y\big(y = \overline{g(\vec n)} \leftrightarrow \psi^\Pi(\overline{\vec n},y)\big) $$
$$ \mathrm{PA} \vdash \forall y\big(y = \overline{h(k)} \leftrightarrow \chi^\Sigma(\overline{k},y)\big) \qquad \mathrm{PA} \vdash \forall y\big(y = \overline{h(k)} \leftrightarrow \chi^\Pi(\overline{k},y)\big) $$
が成り立つとする。そこで
$$ \varphi^\Sigma(\vec x,y) \equiv \exists z\big(\psi^\Sigma(\vec x,z) \wedge \chi^\Sigma(z,y)\big) $$
$$ \varphi^\Pi(\vec x,y) \equiv \forall z\big(\psi^\Sigma(\vec x,z) \to \chi^\Pi(z,y)\big) $$
と定める($\psi^\Pi$はここでは使わない)。
$\vec n$を固定し、$k = g(\vec n)$,$m = h(k)$とおく。このとき$f(\vec n) = m$である。帰納法の仮定に証明の方針の$(\text{a})$,$(\text{b})$を当てはめると、次の四つが得られる。
$(\text{g1})$ $\mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n}, \overline{k})$
$(\text{g2})$ $\mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n}, z) \to z = \overline{k}$
$(\text{h1})$ $\mathrm{PA} \vdash \chi^\Sigma(\overline{k}, \overline{m})$、$\mathrm{PA} \vdash \chi^\Pi(\overline{k}, \overline{m})$
$(\text{h2})$ $\mathrm{PA} \vdash \chi^\Sigma(\overline{k}, y) \to y = \overline{m}$、$\mathrm{PA} \vdash \chi^\Pi(\overline{k}, y) \to y = \overline{m}$
$(\to)$の向き:
・$\varphi^\Sigma$について:$(\text{g1})$と$(\text{h1})$より$\mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n}, \overline{k}) \wedge \chi^\Sigma(\overline{k}, \overline{m})$。存在導入で
$$ \mathrm{PA} \vdash \exists z\big(\psi^\Sigma(\overline{\vec n}, z) \wedge \chi^\Sigma(z, \overline{m})\big) $$
すなわち$\mathrm{PA} \vdash \varphi^\Sigma(\overline{\vec n}, \overline{m})$。
・$\varphi^\Pi$について:$(\text{g2})$と$(\text{h1})$から、等号の代入で$\mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n}, z) \to \chi^\Pi(z, \overline{m})$。$z$について一般化して
$$ \mathrm{PA} \vdash \forall z\big(\psi^\Sigma(\overline{\vec n}, z) \to \chi^\Pi(z, \overline{m})\big) $$
すなわち$\mathrm{PA} \vdash \varphi^\Pi(\overline{\vec n}, \overline{m})$。
$(\leftarrow)$の向き:
・$\varphi^\Sigma$について:$(\text{h2})$と等号の代入から$\mathrm{PA} \vdash z = \overline{k} \wedge \chi^\Sigma(z, y) \to y = \overline{m}$。これと$(\text{g2})$を合わせて
$$ \mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n}, z) \wedge \chi^\Sigma(z, y) \to y = \overline{m} $$
$z$は$y = \overline{m}$に自由に現れないので、存在除去により$\mathrm{PA} \vdash \exists z\big(\psi^\Sigma(\overline{\vec n}, z) \wedge \chi^\Sigma(z, y)\big) \to y = \overline{m}$、すなわち$\mathrm{PA} \vdash \varphi^\Sigma(\overline{\vec n}, y) \to y = \overline{m}$。
・$\varphi^\Pi$について:$\varphi^\Pi(\overline{\vec n}, y)$の$\forall z$に$\overline{k}$を代入して
$$ \mathrm{PA} \vdash \varphi^\Pi(\overline{\vec n}, y) \to \big(\psi^\Sigma(\overline{\vec n}, \overline{k}) \to \chi^\Pi(\overline{k}, y)\big) $$
$(\text{g1})$より内側の前件は証明できるので、$\mathrm{PA} \vdash \varphi^\Pi(\overline{\vec n}, y) \to \chi^\Pi(\overline{k}, y)$。これと$(\text{h2})$を合わせて$\mathrm{PA} \vdash \varphi^\Pi(\overline{\vec n}, y) \to y = \overline{m}$。
複雑さ:$\varphi^\Sigma$が$\mathrm{PA}$上で$\Sigma_1$であることは、$\psi^\Sigma$と$\chi^\Sigma$を同値な$\Sigma_1$論理式に置き換えて、存在量化子を前に出せば分かる。$\varphi^\Pi$では、$\psi^\Sigma$が「ならば」の前件に置かれている。$A \to B$は$\neg A \vee B$と同値なので、前件は否定の下にあるのと同じである。$\Pi_1$版を作るときは否定の下に$\Sigma_1$版を置く、という方針どおりである。実際、$\psi^\Sigma$と同値な$\Sigma_1$論理式を$\exists \vec w \theta$($\theta$は$\Delta_0$)と書けば
$$ \varphi^\Pi(\vec x,y) \leftrightarrow \forall z \forall \vec w\big(\theta(\vec x,z,\vec w) \to \chi^\Pi(z,y)\big) $$
となり、$\chi^\Pi$と同値な$\Pi_1$論理式の先頭の全称量化子も前に出せるので、$\varphi^\Pi$は$\mathrm{PA}$上で$\Pi_1$である。

最小化の場合

$f(\vec x) = \mu y[g(\vec x,y) = 0]$とする。帰納法の仮定より$g$に対して$\psi^\Sigma$,$\psi^\Pi$が取れて、任意の$\vec n$,$k$について
$$ \mathrm{PA} \vdash \forall w\big(w = \overline{g(\vec n,k)} \leftrightarrow \psi^\Sigma(\overline{\vec n},\overline{k},w)\big) $$
$$ \mathrm{PA} \vdash \forall w\big(w = \overline{g(\vec n,k)} \leftrightarrow \psi^\Pi(\overline{\vec n},\overline{k},w)\big) $$
が成り立つとする($\psi$の最後の変数が$g$の値である)。そこで
$$ \varphi^\Sigma(\vec x,y) \equiv \psi^\Sigma(\vec x,y,\overline{0}) \wedge \forall z< y\ \neg\psi^\Pi(\vec x,z,\overline{0}) $$
$$ \varphi^\Pi(\vec x,y) \equiv \psi^\Pi(\vec x,y,\overline{0}) \wedge \forall z< y\ \neg\psi^\Sigma(\vec x,z,\overline{0}) $$
と定める。否定の下に置かれる論理式の階層が入れ替わっていることに注目してほしい。これが証明の方針で述べた工夫である。
$\vec n$を固定し、$m = f(\vec n)$とおく。これは、$g(\vec n,m) = 0$かつ、すべての$k < m$について$g(\vec n,k) \neq 0$、ということである。$g(\vec n, z) = 0$となる$z$を$g(\vec n, \cdot)$の零点と呼べば、$m$は最小の零点である。
以下、$\psi$は$\psi^\Sigma$と$\psi^\Pi$のどちらを表してもよい。帰納法の仮定から、次の二つが得られる。
$(\text{m1})$ $\mathrm{PA} \vdash \psi(\overline{\vec n}, \overline{m}, \overline{0})$
$(\text{m2})$ $\mathrm{PA} \vdash \forall z < \overline{m}\ \neg\psi(\overline{\vec n}, z, \overline{0})$
$(\text{m1})$は、$g(\vec n, m) = 0$に証明の方針の$(\text{a})$を当てはめたものである。$(\text{m2})$は二段で示す。
・各$k < m$について、$g(\vec n, k) \neq 0$である。そこで証明の方針の$(\text{c})$を、入力$(\vec n, k)$、$j = g(\vec n, k)$、$i = 0$として当てはめると、$\mathrm{PA} \vdash \neg\psi(\overline{\vec n}, \overline{k}, \overline{0})$。ここで$\mathbf{R3}$が働く。
・補題2の$(1)$より$\mathrm{PA} \vdash z < \overline{m} \to (z = \overline{0} \vee \cdots \vee z = \overline{m-1})$。各選言肢$z = \overline{k}$からは、等号の代入と一段目から$\neg\psi(\overline{\vec n}, z, \overline{0})$が出る。よって$\mathrm{PA} \vdash z < \overline{m} \to \neg\psi(\overline{\vec n}, z, \overline{0})$であり、$z$について一般化すれば$(\text{m2})$になる。
一段目で得られるのは「$0$は零点でない」「$1$は零点でない」…「$m-1$は零点でない」にあたる有限個の主張で、二段目はそれを一つの有界量化の文にまとめる操作である。
$(\to)$の向き:$(\text{m1})$の$\psi^\Sigma$版と$(\text{m2})$の$\psi^\Pi$版を並べれば
$$ \mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n}, \overline{m}, \overline{0}) \wedge \forall z < \overline{m}\ \neg\psi^\Pi(\overline{\vec n}, z, \overline{0}) $$
すなわち$\mathrm{PA} \vdash \varphi^\Sigma(\overline{\vec n}, \overline{m})$である。$\Sigma$と$\Pi$を入れ替えれば、同じく$\mathrm{PA} \vdash \varphi^\Pi(\overline{\vec n}, \overline{m})$。
$(\leftarrow)$の向き:$\varphi^\Sigma$について示す。方針は、$y$が$\overline{m}$より大きくも小さくもないことを示し、三分律で$y = \overline{m}$を導くことである。
・$\overline{m} < y$を否定する:$\forall z< y\ \neg\psi^\Pi(\overline{\vec n},z,\overline{0})$の$z$に$\overline{m}$を代入すると
$$ \mathrm{PA} \vdash \forall z< y\ \neg\psi^\Pi(\overline{\vec n},z,\overline{0}) \wedge \overline{m} < y \to \neg\psi^\Pi(\overline{\vec n},\overline{m},\overline{0}) $$
一方、$(\text{m1})$より$\mathrm{PA} \vdash \psi^\Pi(\overline{\vec n},\overline{m},\overline{0})$である。トートロジー$(A \wedge B \to \neg C) \wedge C \to (A \to \neg B)$により
$$ \mathrm{PA} \vdash \forall z< y\ \neg\psi^\Pi(\overline{\vec n},z,\overline{0}) \to \neg(\overline{m} < y) \tag{$*$} $$
直観的には、「$y$より小さい数はどれも零点でないのに、$m$は零点である。だから$m$は$y$より小さくない」ということである。
・$y < \overline{m}$を否定する:$(\text{m2})$の$\psi^\Sigma$版の$z$に$y$を代入すると、$\mathrm{PA} \vdash y < \overline{m} \to \neg\psi^\Sigma(\overline{\vec n},y,\overline{0})$。対偶を取って
$$ \mathrm{PA} \vdash \psi^\Sigma(\overline{\vec n},y,\overline{0}) \to \neg(y < \overline{m}) \tag{$**$} $$
直観的には、「$y$は零点だが、$m$より小さい数は零点でない。だから$y$は$m$より小さくない」ということである。
・$(*)$と$(**)$を合わせると
$$ \mathrm{PA} \vdash \varphi^\Sigma(\overline{\vec n},y) \to \big(\neg(\overline{m} < y) \wedge \neg(y < \overline{m})\big) $$
他方、補題2の$(2)$より$\mathrm{PA} \vdash y < \overline{m} \vee y = \overline{m} \vee \overline{m} < y$である(三分律)。これらを合わせて
$$ \mathrm{PA} \vdash \varphi^\Sigma(\overline{\vec n},y) \to y = \overline{m} $$
$\varphi^\Pi$についても、$\Sigma$と$\Pi$の役割を入れ替えれば同じ議論が通る。
複雑さ:$\varphi^\Pi$が$\mathrm{PA}$上で$\Pi_1$であることは、$\neg\psi^\Sigma$が$\Pi_1$と同値であり、$\Pi_1$論理式の連言と有界全称量化がふたたび$\Pi_1$と同値になることから分かる($\forall z< y\ \forall w \theta$は$\forall w\ \forall z< y\ \theta$と論理的に同値である)。
$\varphi^\Sigma$のほうは事情が違う。第二の連言肢$\forall z< y\ \neg\psi^\Pi$では、$\Sigma_1$と同値な$\neg\psi^\Pi$の前に有界全称量化子が付いている。これを$\Sigma_1$の形に直すには
$$ \forall z< y\ \exists w\ \theta(z,w) \leftrightarrow \exists W\ \forall z< y\ \exists w< W\ \theta(z,w) $$
という書き換えが必要になる(右から左は明らか、左から右は「有限個の証人の最大値を取る」という操作で、収集原理と呼ばれる)。これは論理だけでは出てこないが$\mathrm{PA}$では証明できる。したがって$\varphi^\Sigma$は$\mathrm{PA}$上で$\Sigma_1$である。表現定理の証明で、$\mathrm{Q}$の公理を超えて$\mathrm{PA}$の帰納法を使うのはこの一箇所だけであり、その意味は「$\mathrm{R}$での表現可能性」で論じる。
以上で表現定理の証明が完成した。$\square$

$\mathbf{R1}$から$\mathbf{R5}$がどこで働いたかを確認しておこう。$\mathbf{R1}$, $\mathbf{R2}$は足し算と掛け算の場合で働いている。$\mathbf{R3}$(違う数の区別)は、等号の特性関数の場合と証明の方針の$(\text{c})$で働いている。$\mathbf{R4}$($\overline{n}$以下の数の列挙)は、補題2の$(1)$で「未満」の形にしたうえで、最小化の$(\text{m2})$で働いている。$\mathbf{R5}$(数項との大小の比較)は、補題2の$(2)$で三分律の形にしたうえで、最小化の$(\leftarrow)$の最後の場合分けで働いている。

系:関係の場合

任意の計算可能述語は、$\mathrm{PA}$上で$\Sigma_1$な論理式ならびに$\mathrm{PA}$上で$\Pi_1$な論理式によって、$\mathrm{PA}$において表現される。

述語$P$の特性関数$P^{\circ}$が論理式$\varphi(\vec x,y)$で表現されているとする。このとき$P$は$\varphi(\vec x,\overline{1})$で表現される。
実際、$P(\vec n)$が成り立つときは$P^{\circ}(\vec n) = 1$なので、証明の方針の$(\text{a})$より$\mathrm{PA} \vdash \varphi(\overline{\vec n},\overline{1})$。成り立たないときは$P^{\circ}(\vec n) = 0 \neq 1$なので、証明の方針の$(\text{c})$より$\mathrm{PA} \vdash \neg\varphi(\overline{\vec n},\overline{1})$。$\square$

$\mathrm{R}$での表現可能性

上の証明は$\mathrm{PA}$で行なったが、表現定理の証明で見た通り、帰納法を使ったのは「$\varphi^\Sigma$が$\mathrm{PA}$上で$\Sigma_1$である」と言う一箇所だけで、それ以外に使ったのは$\mathbf{R1}$から$\mathbf{R5}$(補題2を含む)と論理だけだった。つまり、論理式の複雑さを気にしなければ、同じ構成が$\mathrm{R}$でそのまま通る。

$\mathrm{R}$での表現可能性

任意の計算可能関数および計算可能述語は、$\mathrm{R}$(したがって$\mathrm{Q}$、$\mathrm{PA}$、およびそれらを含む任意の理論)において表現可能である。ただし、表現する論理式の複雑さについては何も主張しない。

証明の方針から最小化の場合の議論で、$\mathrm{PA}$を$\mathrm{R}$に置き換え、$\Sigma$版と$\Pi$版のペアを一つの論理式に置き換えるだけでよい。各節の「複雑さ」の段落は使わない。証明の方針の$(\to)$と$(\leftarrow)$による確かめ方も、帰納法の仮定から取り出す$(\text{a})$, $(\text{b})$, $(\text{c})$も、$\mathrm{R}$でそのまま成り立つ($(\text{c})$で使うのは$\mathbf{R3}$だけである)。そこで、$f$に対して単一の論理式$\varphi_f$を次のように作る。
基本関数:基本関数の場合とまったく同じ$\Delta_0$論理式を使う。そこで用いたのは$\mathbf{R1}$, $\mathbf{R2}$, $\mathbf{R3}$だけである。
合成:$f(\vec x) = h(g(\vec x))$に対して
$$ \varphi_f(\vec x,y) \equiv \exists z\big(\varphi_g(\vec x,z) \wedge \varphi_h(z,y)\big) $$
とする。合成の場合の$\varphi^\Sigma$についての議論で、$\psi^\Sigma$を$\varphi_g$に、$\chi^\Sigma$を$\varphi_h$に読み替えればよい($(\text{g1})$, $(\text{g2})$, $(\text{h1})$, $(\text{h2})$も同じく読み替える)。そこでは順序についての性質を一切使っていない。
最小化:$f(\vec x) = \mu y[g(\vec x,y)=0]$に対して
$$ \varphi_f(\vec x,y) \equiv \varphi_g(\vec x,y,\overline{0}) \wedge \forall z< y\ \neg\varphi_g(\vec x,z,\overline{0}) $$
とする。最小化の場合の議論で、$\psi^\Sigma$と$\psi^\Pi$をともに$\varphi_g$に置き換えればよい。$(\text{m1})$と$(\text{m2})$、$(\to)$の向き、$(*)$と$(**)$の導出、最後の場合分けは、そのまま通る。使うのは、$(\text{m2})$での$\mathbf{R3}$(証明の方針の$(\text{c})$を通して)と$\mathbf{R4}$(補題2の$(1)$を通して)、最後の場合分けでの$\mathbf{R5}$(補題2の$(2)$を通して)である。
どの段階でも$\mathrm{PA}$の帰納法は使っていない。関係の場合も系:関係の場合と同じで、そこで使った$(\text{a})$と$(\text{c})$は$\mathrm{R}$でも成り立つ。$\square$

では $\Sigma$ と $\Pi$ のペアは何のためだったのか

論理式の複雑さを制御するためである。 単一版では合成や最小化のたびに量化子と否定が積み重なり、$\Sigma_1$にも$\Pi_1$にも収まる保証がない。ペア版は否定の下で階層を入れ替えることで形を保ち、$\mathrm{PA}$の帰納法(収集原理)はそのためにだけ借りたのである。「弱い体系で、しかも$\Sigma_1$で」を両立させるには別の工夫が要る(実際に両立できることが知られている)が、本稿では扱わない。

後の記事で使う形は次の二つである。
・$\mathrm{PA}$を含む理論については、計算可能関数・述語を$\mathrm{PA}$上で$\Sigma_1$な論理式でも、$\mathrm{PA}$上で$\Pi_1$な論理式でも表現できる。前編で可証性述語が$\Sigma_1$になるのはこのおかげであり、$\Pi_1$版は前編のロッサーの可証性述語で使う。
・$\mathrm{Q}$を含む理論については、複雑さを問わなければ表現できる。前編の対角化定理と本質的決定不能性には、これで十分である。

各点的な把握と一様な把握

最後に、表現可能性という概念の限界を述べておく。表現可能性が要求しているのは、各具体的な数についての無限個の主張である。
$$ T \vdash \forall y\big(y = \overline{f(0)} \leftrightarrow \varphi(\overline{0}, y)\big) \qquad T \vdash \forall y\big(y = \overline{f(1)} \leftrightarrow \varphi(\overline{1}, y)\big) \qquad \dots $$
これを各点的な把握と呼ぶことにする(この記事だけの言い方である)。一つ一つの入力について正しい答えを$T$が証明する。しかし$T$が「$f$とはどういう関数か」を一般的に理解している必要はまったくない。
これに対して、一様な把握というものが考えられる。$f$の定義式(たとえば再帰方程式)を全称量化した文を$T$が証明し、そこから一般的な性質を導ける、という状況である。
この二つは全然違う。 以前見た通り、$\mathrm{Q}$は各点的な把握をしている。任意の$m, n$について$\mathrm{Q} \vdash \overline{m}+\overline{n} = \overline{m+n}$である。ところが
$$ \mathrm{Q} \nvdash \forall x(0 + x = x) $$
だった。$\mathrm{Q}$は足し算の値をすべて知っており、再帰方程式も公理として持っているのに、そこから一般的な性質を引き出す手段(帰納法)を持たない。
この非対称性が第一不完全性定理と第二不完全性定理を分ける。第一不完全性定理では、「この具体的な数は$\sigma$の証明のGödel数である」と一点ずつ言えれば足りる。だから$\mathrm{Q}$のような弱い体系で成り立ち、エンジンは表現定理である。第二不完全性定理の標準的な証明(後編)では、$\Sigma_1$完全性そのものを体系自身に証明させなければならない。それも「この具体的な文は証明できる」という一点ずつの形ではなく、$\Sigma_1$論理式$\sigma(x)$ごとに、変数$x$を自由にしたまま「$\sigma(x)$が成り立つならば、$\sigma$に$x$の数項を代入した文は証明できる」という一様な形で、である。だからこの証明では帰納法が使われる。詳しくは後編で論じる。

まとめ

$1.$ 算術の体系:$\mathrm{PA} \supset \mathrm{Q} \supset \mathrm{R}$。$\mathrm{Q}$は$0+x=x$のような一般法則すら証明できないが、具体的な数の計算はすべてできる。
$2.$ $\Sigma_1$完全性:真な$\Sigma_1$文は$\mathrm{R}$でも証明できる。実質は$\Delta_0$完全性であり、使うのは$\mathbf{R1}$から$\mathbf{R4}$だけ。$\Pi_1$版は成り立たない。
$3.$ 原始再帰の消去:$\beta$関数で有限列を一つの自然数にコード化すると、原始再帰は最小化で置き換えられる(クラス$\mathrm{Recu}$)。
$4.$ 表現定理:計算可能な関数・述語は、$\mathrm{PA}$上で$\Sigma_1$な論理式でも$\Pi_1$な論理式でも$\mathrm{PA}$で表現できる。$\Sigma_1$版と$\Pi_1$版をペアで走らせ、最小化で否定の下の階層を入れ替えるのが本稿の証明の鍵。複雑さを問わなければ$\mathrm{R}$でも表現可能。
$5.$ 各点的と一様:表現可能性は各点ごとの主張しか保証しない。この限界が第一不完全性定理と第二不完全性定理の差を生む。
前編ではGödel数化と対角化定理を経由して第一不完全性定理へ進む。


前編:(工事中)

投稿日:9時間前
更新日:3時間前
数学の力で現場を変える アルゴリズムエンジニア募集 - Mathlog served by OptHub

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

不完全性定理、様相論理、算術のモデル理論に関心があります

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中