対角線論法の概要
カントールの対角線論法(カントールのたいかくせんろんぽう、英: Cantor's diagonal argument)は、数学における証明テクニック(背理法)の一つ。1891年にゲオルク・カントールによって非可算濃度を持つ集合の存在を示した論文[1]の中で用いられたのが最初だとされている。
その後対角線論法は、数学基礎論や計算機科学において写像やアルゴリズム等が存在しないことを示す為の代表的な手法の一つとなり、例えばゲーデルの不完全性定理、停止性問題の決定不能性、時間階層定理といった重要な定理の証明で使われている。
対角線論法
関数による表現
以下の補題を使った論法も対角線論法と呼ばれる。後で見るように、実は以下の補題は前節で示した補題と同値である。
を集合とし、
を写像とする。
を
と書くと、各
に対し
は
から
への写像である。
を、
により定義する。ここで、「
」は0と1を反転する写像。すなわち、
かつ
。このとき、
となる
は存在しない。
実際、もしそのような
が存在すれば、
となり矛盾する。
第一の等号は
より従う。第二の等号は
の定義より。
なお上の補題は
の値域
が
ではない場合にも一般化でき、
を
となる
が存在しない写像とし、
とすると、
となる
は存在しない。
べき集合
は、
から
への関数全体の集合と自然に同一視できることがよく知られているが、「関数による表現」の対角線論法と「集合による表現」の対角線論法はこの同一視を通して同値である事が証明できる。実際、
を「集合による表現」で登場した関数とするとき、
は
から
への関数とみなせる。関数
による
の像を
と書き、関数
を、
として「関数による表現」の補題を使うことで、「集合による表現」の補題を証明できる(逆もまた真)。
行列による表現
以下の補題を使った論法も対角線論法と呼ばれる。後で見るように、実は以下の補題は前節で示した補題と同値である。
を集合とし、
に値をとる
行
列の正方行列
を考える。
の
行目のなすベクトル
を
と書く。行列
の「対角線」ベクトル
をビット反転させたベクトル
を
とする。ここで「
」は0と1を反転させる関数。このとき、任意の
に対し、
。
実際
の第
成分は
であるのに対し、
の第
成分は
であるので、
。
を
に対し
を対応させる関数とすることで、「関数による表現」の補題との同値性を証明できる。
論理式による表現
すなわち
自然数の集合と[0, 1]区間の濃度の違い
自然数全体の集合
から
区間(0以上1以下の実数全体の集合)への全単射が存在しないことを以下のように証明できる。後で見るように、この証明は暗に対角線論法を使っている。
なお、
区間と実数全体の集合
は濃度が等しいので、この事実は
から
への全単射が存在しないことを含意する。
さて、仮に
から
区間への全単射
が存在すると仮定とし、
を
と書くことにする。すると
区間の各元を
と番号づけすることができたことになる。
を二進数展開したときの
桁目を
とし[注釈 1]、
を
と表記する。
そしてbを小数点展開が
となる実数とする。このとき、
は
の
桁目は
であるのに対し、
の
桁目は
であるので、
と
は異なる。
仮定より
区間の全ての元は
と番号づけされているはずなのに、
区間の元であるはずの
は
のいずれとも異なるので、矛盾。
従って
から
区間への全単射は存在しない。
なお、
桁に対応する元は
個存在するが、対角線論法においては
桁に対して元の数を
個として議論していることには注意が必要である。
以上の論法は、行列
に対して対角線論法の「行列による表現」を使ってベクトル
が
のいずれの行とも異なることを証明したものであると解釈できる。従って以上の論法は暗に対角線論法を使っている。
停止性問題の決定不能性
停止性問題の決定不能性も対角線論法で証明できる。
以下簡単の為、プログラムの入力は全て自然数とする。
プログラムは0と1からなる数字で書き表せるので、
プログラム全体の集合と自然数全体の集合
と自然に同一視できる
[注釈 2]。
を次のように定義する:
が停止すれば
。そうでなければ
。
以下
を
と表記する。
を、
により定義する。
すると対角線論法により、
となる
は存在しない。
さて、仮に停止性問題を常に正しく解くプログラム
が存在するとする。
を、
なら停止せず、
なら0を出力して停止するプログラムとすると、
と
の定義より
が成立し、矛盾。
したがって停止性問題を常に正しく解くプログラムは存在しない。
ゲーデルの第一不完全性定理の証明は
停止性問題の決定不能性の証明に酷似している。
したがってゲーデルの第一不完全性定理の証明も暗に対角線論法を利用している。
停止性問題の決定不能性を「有限時間」と「無限時間」という2つの時間階層の間の時間階層定理だと解釈すると、
時間階層定理の証明を停止性問題の決定不能性の証明の焼き直しとみなすことができる。
したがって時間階層定理の証明も対角線論法を使っていることが分かる。
脚注
注釈
- ↑
の二進数展開が2つあることもある(例えば
)為、本当はこの部分の証明はもう少し複雑になる。
- ↑ 本当は
の中にはプログラムに対応していないものもあるが、
簡単の為その辺の事情は略する。
出典
- ↑ George Cantor (1891). Uber ein elementare Frage der Mannigfaltigkeitslehre. Deutsche Mathematiker-Vereinigung.