チューリング認識不可能な言語と対角線論法
目次
概要
今回は以下に示す言語が判定不可能であり、その補集合が認識不可能であることを示していきます。
その次に、証明に関連して対角線論法について説明します。
判定不可能な言語
上記の が判定不可能なことは以下のような手順で示せます。
証明
- 以下のような挙動をする TM を考える。この が実際には存在しないことを示せれば が判定不可能であると示せる。
- この を用いる TM を考える。 は TM のコード化 を入力として、 に対して を走らせる。そうして得られた出力の逆を は出力する。つまり、 の挙動は以下のようになる。
- その時の挙動を記述すると
- つまり が受理でもあり拒否でもあることとなり、矛盾する
対角線論法を用いてこの定理は証明されていますが、それについては後述します。
さて、 が判定不可能であることが示されました。次に、以下の定理を示します。
- 任意の言語に対し、言語とその補集合がどちらも Turing 認識可能であるときに限り、その言語は判定可能である。
これが示せると、対偶を取ることにより
- 言語 が判定不可能で認識可能 ( は の補集合)が認識不可能
であることが示せます。
証明
示すべきことは二つあります。
- 言語が判定可能なら、その言語と補集合はどちらも認識可能
- 言語とその補集合がどちらも認識可能なら、その言語は判定可能
1 は明らかです(判定の方が認識より厳しい条件です)。
2 を示します。言語 を認識する TM を 、 を認識する TM を とします。これらを使用して以下の挙動をする 2 テープ TM を考えます。
- は入力 に対して
- 並列に と の両方を動作させる。
- が受理するならば は を受理し、 が受理するならば拒否する。
と のどちらか一方は必ず を受理し、受理の定義からそれは有限時間内に起こるので は必ず停止します。 であれば は受理し、それ以外は拒否するので は に対する判定装置となっています。よって、 が判定可能なことが示せました。
以上の証明により、( が Turing 認識可能なので) が Turing 認識不可能な言語であることが示せました。
対角線論法
対角線論法の話に入る前に、写像について簡単に復習しておきます。
を集合とした時、任意の の要素 に対し、それに対応する の要素 をただ一つ対応付けることを考えます。このとき、 のことを から への写像と言います。また、写像の全射及び単射については以下のように定義されます。
よって、以下のことが言えます。
- を写像とする。
「大きさ」というかなり怪しい表現をしましたが、有限集合に限定すればここでいう大きさとは集合内の要素の個数を指しています(無限集合に関しては濃度という概念を適宜参照してください)。
さて、対角線論法は一般的な背理法のテクニックとして知られています。具体例の一つとして無限集合同士の大きさの比較に役立ちます。以下、簡単に集合 と冪集合 の大きさが異なることを示します。大きさが異なることを示すのには、いかなる写像 によっても のある要素に飛ぶような の要素が取れないことを言えば良いです。厳密に書き下すと以下のようになります。
証明
背理法により示す。 となるような の存在を仮定する。
とすると仮定より でもあるが、これは の定義に矛盾する。 とすると でもあるが、これも の定義に矛盾する。よって示された。
集合の大きさを比べる時に、写像 の全射性、単射性を使うことは非常によくあります。これをもっと対角線っぽくした具体例が が非可算であることの証明です。 となる全単射の写像が作れないということを、小数点以下の各桁で と異なるものを取ってくることで示しています(この辺は画像で見た方が分かりやすいですが)。
高校数学の美しい物語というサイトではより直接的に上記の定理を行列を用いて言い換えています。
カントールの定理の証明と対角線論法 | 高校数学の美しい物語
(こういうのって勝手に貼っていいものなんでしょうか)
上の TM は可算個であり、 上の言語全体の集合 が非可算個、各 TM に対してそれが認識する言語を対応させる写像 が単射であることを考えると、チューリング認識不可能な言語が存在すること自体は直感的に理解できるかと思います(詳細に証明しようと思ったら、 が非可算であることの証明から書くことになると思います)。