不動点明王
怪しげな壺を買った山村君は、その夜、夢の中で怪物と出会った。
「俺は不動点明王だ。好きな『不動点』を一つだけ与えてやろう」
不動点明王と名乗った怪物は何かを与えてくれるそうなので、山村君は聞いてみた。
「『不動点』とはなんでしょうか?」
「本来は数学の言葉だが、それとは関係ない。俺の言う『不動点』とはある操作に対する『入力』のことで、それに操作を施した後の『出力』と同じになるもののことだ。例えば、『与えられた質問に答える』という操作を考えると、入力は『質問』、出力は『答え』ということなるから、その不動点は『質問内容がそのまま答えになる質問』だ。そして俺にその不動点を与えてほしいのなら、俺はそういう質問の内の一つを具体的に与えることになる。それから、与える不動点は物でも構わないが、その場合は後で同じものを返してもらうことになる」
「不動点であればどんなものでもいいのでしょうか?」
「この世界では現実には存在しない物でも存在することができるが、俺はそういった物を自由に作り出すことはできない。俺ができるのはあくまで不動点を作ることだけだ」
山村君は不動点のことをなんとなく理解できたが、どんな不動点を貰えばいいのかはまだ分からなかった。
「今決められないのなら、後で壺をのぞいてみるといい。またこの世界に来られるだろう」
山村君は夢から覚めていくのを感じた。
数日後、山村君の部屋に友達の大木君が遊びに来た。
山村君は不動点明王のことを大木君に話してみることにした。
話を聞いた大木君は少し考えこんだ後、部屋の中を見回して空の段ボール箱を見つけた。そして、大木君はその箱をかかえて、その中に自分の財布から取り出した一枚の500円玉を入れた。それから山村君に一緒に壺をのぞくように言った。
二人は夢と同じの世界にいた。
「決まったか?」
不動点明王が言った。
「隣の大木君が決めるそうです」
山村君にそう言われると、大木君は持ち込んだ箱を口が横になるように置いて、こう言った。
「この箱に対する操作として、この箱の口に別の箱を重ねて横に連結させる、というものがあります。つまり、入力に別の箱、出力に重なった箱という操作です。この操作に対する不動点がほしいのですが」
「いいだろう」
不動点明王がそういうと、突然、果てしなく横に続く箱の列が出現した。
「これが不動点なのか?」
山村君は大木君に尋ねた。
「その通り」
大木君はそう言って、箱の列から先頭の箱を抜き取った。箱の列は、持ち込んだ箱と同じ見た目の箱が無数に連結されたもので、抜き取った箱の中には500円玉が一枚入っていた。
大木君は、山村君に持ち込んだ箱を持ってくるように言い、その中にさっきの箱の中にあった500円玉を投げ入れた。それから新しく列の先頭になった箱に対しても同じように抜き取ると、そこにはまた500円玉が入っていた。大木君はまたもそれを山村君の持っている箱に投げ入れると、それからは同様にして次々と箱を抜きとって500円玉を増やしていった。
やがて怖くなった山村君がもういいんじゃないかと言うと、大木君もそれに賛成し不動点明王に向かって言った。
「それを返します」
「いいだろう」
不動点明王がそう答えると、二人は山村君の部屋に戻っていた。
山村君は疑問に思っていることを大木君に尋ねてみた。
「『無限に連結された全く同じ箱』があの操作の不動点になるのは分かったけど、そういう非現実的なのは作れないんじゃ?」
「あの操作に対する不動点は『箱と不動点それ自身』で作れるんだよ」
「なんだかよく分からないな。自分を作るのに自分が必要って、それも非現実的だと思うけど」
「かもしれない。でもこれは不動点を作るだけで作れる不動点だから問題はないと思う」
「不動点を作ることで結果的にそうなるのはいいんだっけ?」
「で、この不動点は『不動点 = 箱 + 不動点』という形だから、実際には、右辺にある『不動点』に『箱 + 不動点』を代入し続けて『無限に連結した箱』が作られることになる」