プログラミング言語版不完全性定理(8)
第2不完全性定理の証明を書き直していきます。
証明関数
論理式と証明図をプログラミング言語のコードとして表すことができるシステムについて考えます。
このシステムで論理式が証明できるかどうかを調べるプログラミング言語の関数 があるとします。
に入力された論理式のコード
に対して
- (P1)
は終了して「成功」を返す
- (P2)
は終了して「失敗」を返す
- (P3) それ以外
の場合があるとします。(P1) のとき と表すことにします。(P1) 以外のとき
と表すことにします。
論理式の形式
まず『数学基礎論 (ちくま学芸文庫)』の記述に合わせて論理式のコードを論理式の形式で記述します。
- (1):
を「論理式
が証明できる」ことを表す論理式のコードとします。以下が成り立つとします。
- (1-1):
- (1-2):
- (1-1):
- (2):
を矛盾を表す一つの論理式のコードとします。
- (3):
と定義します。
- (4): 第1不完全性定理の主張は
となります。ここで
- (4-1):
(
は第1不完全性定理の証明に現れた
)
- (4-1):
- (5):
が成り立ちます。なぜなら
- (5-1): (1-2) から
が成り立ちます。
- (5-2): (5-1) と (4-1) から
が成り立ちます。
- (5-3): (5-2) から
が成り立ちます。
- (5-4): (5-3) と (1-1) から
が成り立ちます。
- (5-5): (5-4) から
が成り立ちます。
- (5-6): (5-5) と (3) から (5) が成り立ちます。
- (5-1): (1-2) から
- (6): (5) と (1-1) から
が成り立ちます。
- (7): (6) と (4-1) から
が成り立ちます。
- (8): (5) と (7) から
が成り立ちます。
- (9): (8) から
ならば
が成り立ちます。
- (10): (9) から
ならば
が成り立ちます。よって
が無矛盾ならば
で
は証明できません。
関数の形式
次に「不完全性定理(10) - エレファント・ビジュアライザー調査記録」で書いたような関数の形式に書き直します。
- (1):
を「論理式
が証明できる」ことを表す論理式のコードとします。以下が成り立つとします。
- (1-1):
- (1-2):
- (1-1):
- (2):
を矛盾を表す一つの論理式のコードとします。
- (3):
と定義します。
- (4): 第1不完全性定理の主張は
となります。ここで
- (4-1):
(
は第1不完全性定理の証明に現れた
)
- (4-1):
- (5):
が成り立ちます。なぜなら
- (5-1): (1-2) から
が成り立ちます。
- (5-2): (5-1) と (4-1) から
が成り立ちます。
- (5-3): (5-2) から
が成り立ちます。
- (5-4): (5-3) と (1-1) から
が成り立ちます。
- (5-5): (5-4) から
が成り立ちます。
- (5-6): (5-5) と (3) から (5) が成り立ちます。
- (5-1): (1-2) から
- (6): (5) と (1-1) から
が成り立ちます。
- (7): (6) と (4-1) から
が成り立ちます。
- (8): (5) と (7) から
が成り立ちます。
- (9): (8) から
ならば
が成り立ちます。
- (10): (9) から
ならば
が成り立ちます。よって
が無矛盾ならば
で
は証明できません。
は証明関数の条件を満たしていれば良いのですが、ここでは証明に使う推論の説明を書いていないので何なのかよくわかりません。次回はこの点を改善していきたいと思います。











![計算理論の基礎 [原著第3版] 1.オートマトンと言語 計算理論の基礎 [原著第3版] 1.オートマトンと言語](https://m.media-amazon.com/images/I/51s4ufVphiL._SL500_.jpg)
![計算理論の基礎 [原著第3版] 2.計算可能性の理論 計算理論の基礎 [原著第3版] 2.計算可能性の理論](https://m.media-amazon.com/images/I/51ft1meHU8L._SL500_.jpg)
![計算理論の基礎 [原著第3版] 3.複雑さの理論 計算理論の基礎 [原著第3版] 3.複雑さの理論](https://m.media-amazon.com/images/I/51GpvG33YLL._SL500_.jpg)