ラッセルのパラドックスとゲーデルの不完全性定理

反応が遅くなりすぎるのもよくないのでざくっと。モティベーションは「無限のスーパーレッスン」に酩酊する: わたしが知らないスゴ本は、きっとあなたが読んでいる。Wikipedia(ja)によるゲーデルの不完全性定理の項はこちら→ゲーデルの不完全性定理 - Wikipedia
ラッセルのパラドックスについてはラッセルのパラドックス - くるるの数学ノートで書きましたが、ここで問題にしているのはA\in Aの真偽の話でした。それに対して、ゲーデルの不完全性定理は真偽ではなく、証明できるかできないかの話です。大体の筋としては

  1. 論理式はわりと自然な形で自然数にコードできる
    • 割と自然なコードなので、「ある論理式の変数になにか項を代入してできた論理式のコード」とかは自然数論(加減乗除+α)で書き表せる
  2. 論理式の列もわりと自然な形で自然数にコードできる
  3. 論理式の列がある論理式の証明になっているかどうかを自然数論でチェックできる
  4. というわけで、自然数論の中で論理式とか証明とかを記述できるので、それを使って変な論理式(のコード)を作る
  5. その変な論理式Gは「Gの証明が存在しない」ことと同値になっている
  6. うわーん

というわけです。重要なのは、ある命題に証明が存在するかしないかということが自然数論の中で記述できるってことです。それに対して、ある命題が真か偽かということは記述できません…とかくとさすがに深刻に誤解されそうですね。論理式のコードが与えられたときにそれが真か偽かを判定するような操作を記述することは(少なくとも普通の体系では)できません。その点でラッセルのパラドックスとゲーデルの不完全性定理は大きく違います。

本当は、ラッセルのパラドックスではなくタルスキの"undefinability of truth"の話と比較するべきなんですが、まあ細かいことは気にしない方向で。それにけっこう重要な点を省略しているので(「帰納的に記述可能」という言葉が出てこない時点でかなりヤバイ)、ちゃんとわかりたい人はやっぱり教科書でも本でも読み直してみてください。

と、ここまで書いたあとですでにコメント欄でそういう話題が出ていることを発見orz。でもとりあえずアップしておきます。