• 検索結果がありません。

自己印刷プログラム

前回の宿題

自分自身を印刷するプログラムを書け.

をロベールの不動点定理を用いて解いてみよう。

§4.6

と同じ枠組みで考える。変換

R

として、入力なしのプログラムの文字列を、その出力文字 列に対応させるプログラムとする、すなわち

R(P ) = eval(P, )

とする。この変換の不動点は

eval(Q, x) = eval(eval(x, x), ∅)

とおき、xに

Q

を代入すればよい:

eval(Q, Q) = eval(eval(Q, Q), ∅).

実際

eval(Q, Q)

というプログラムを実行すると 、eval(Q, Q)となる。

この筋書きをもう少し具体化してみよう。文字列型の変数を持つプログラム言語で,入力デー タは特別な変数Inputにより一度だけ使われるとし 、またパターンの置き換えが用意されている ものを考える。すると上の

Q

は次のようにプログラムできる:

Q =

u=Input;

Replace(u,’Input’,1, u);

Output u

このプログラムは次のような作業を行う。

1

行目 変数

u

に入力文字列を代入する。

2

行目 変数

u

の中に文字列

Input

があれば最初のものを1回だけ文字列

u

に置き換える。

3

行目 変数

u

の内容を出力する。

したがって、1入力のプログラム

P

Q

に入力すると、その入力を引用する部分Inputが

P

と いう文字列に書き換わる。従って、出力をプログラムと思って再度実行すると、eval(P, P

)

を実行 したときの出力と同じになる。

そこで、この

Q

Q

自身を入力してみると 、

u= "u=Input;

Replace(u,’Input’,1,u);

Output u";

Replace(u,’Input’,1, u);

Output u

.

となる。ただし 、2重引用符ではさまれた3行は文字列とみなす。これを実行してみると 、

1

行目 変数

u

に文字列

u=Input;

Replace(u,’Input’,1,u);

Output u

が代入される。

2

行目 変数

u

の最初の

Input

u

の値と書き換えられて

u

の値は次の文字列となる:

u= "u=Input;

Replace(u,’Input’,1,u);

Output u";

Replace(u,’Input’,1, u);

Output u

3

行目

u

の値、すなわち最初のプログラム自身、が出力される。

実際のプログラミング言語でもこの方針に従えばよい。たとえば 、数学処理」システムである

Mathematica

では次のようなプログラムで実現できる。引用記号”に別の表現を与える必要がある

ために「”」のコード

34

を利用している。

x="x=;z=StringInsert[z,FromCharacterCode[34],3];

z=StringInsert[z,FromCharacterCode[34],3];

z=StringInsert[x,x,4];Print[z]";

z=StringInsert[x,FromCharacterCode[34],3];

z=StringInsert[z,FromCharacterCode[34],3];

z=StringInsert[z,x,4];

Print[z]

5 まとめ

2回に亘って、ゲーデルの不完全性定理を紹介した。これらの議論が意味すると思われること を少し述べて終わりにしたい。

5.1 不完全性定理の含意

はっきりしたのは 、数学研究の現実の状況を語り尽くせる理論はないということだ。

たしかに、理論についてのメタ議論の一部は理論内部に表現できる( 例:論理式の証明可能性 というメタ概念が論理式のゲーデル数についての

PA

論理式

Pr

で表現できた ).そして、その内部 表現について,さらにメタ議論ができる(不完全性定理の証明も

PA

の論理式として表現できた).

しかし ,すべての数学的議論が整合的な一理論内部に表現されることはない.さもないと 内部表 現された議論についての議論と,もとの議論との関係を考えることで 矛盾的状況が生じる.9こう して、「数学研究」は,何か他のものを通して明白に把握できるようなものでなく,人間の根源的 活動の一つであることがわかるのである.

数学ですらそうなのであるから、どの学問分野についても「決定的理論」などという夢の理論 はあり得ないことがわかる。これは学問の未来への悲観ではなく力強い楽観をもたらす。夢想もし ていないような新しいタイプの発見や発明の可能性がなくなることはあり得ないことを意味するか らである。このことをかなり明確な議論で確認しえた点に不完全性定理の大きな価値がある。

学問のような一見閉じたように見える世界ですら「決定的理論」などというものがあり得ず絶 えず未来に開いているのであれば 、現実の世界においては、その様相はもっと根源的であることは 言うまでもない。個人的生活から世界の様々な困難な状況についても、何ひとつ最終的に「固定さ れ決定されてしまっている」というようなものはない、という描像が不完全性定理からもたらされ るのである。この描像こそは、近代科学が10意図せずして破壊してきたものであり、現在も破壊の 激しさを増しつつあるものである。それに対抗するには自分で考え、自分で考える人と議論する以 外に何も道はない。

関連したドキュメント