この記事では、巨大数における有限と無限について解説する。
前提知識
* 知らないと厳しい: 数学的帰納法
* 知ってると便利: ペアノの公理
* 知ってると便利: 公理的集合論
==第0章 RPGの塔==
この塔は上の条件を全て満たしている。3つ目の条件を満たすことを厳密に示すためには数学的帰納法を拡張した超限帰納法と呼ばれる証明法が使用される。
==第1章 クエスト==
あなたは絶対にオーバーフローしないカウンターを持っている。そのカウンターを持って、ヘリコプターでこの塔に窓から乱入したとする。カウンターの初期値は任意とするが、一般にnという記号が用いられるためこの記事でもそれに従う。
あなたはプレイヤーなのでモンスターに負けることはないとする。
さて、あなたがモンスターを瀕死にまで追い込むと、モンスターはカウンターの値を要求する。
あなたがカウンターを見せると、モンスターは「302 Found......」と断末魔を上げながら倒れ、最期に自分より弱いモンスターがいる階数を1つ提示する。いないときは0階を提示する。
このリダイレクトはカウンターの値と現在の階数だけで決まり、時刻や乱数といった外部の要素は用いないものとする。
あなたはカウンターをインクリメントし、その階に向かう。
0階に降りるまでこれを繰り返す。
注意: ヘリコプターで乱入した階数をα、カウンターの初期値をnとすると、0階に降りたときのカウンターの値はαとnの関数として表される。この関数をこの記事だけの用語としてこの'''塔に付随する巨大関数'''と呼ぶことにする。第1引数がαで第2引数がnである。
===シンタックスシュガー===
自然数だとこの後の議論が面倒なので、塔の階数は適当なエンコーディングでデコードされた文字列で表示されているものとする。文字列として不適当なバイナリデータ(UTF-8エンコーディングにおける11000000 11000000など)に対応する解には、モンスターの代わりに人間を置いておく。文字列として不適当な階数には今後の議論で行くことはないので、これはさほど問題ではない。
===具体例===
強さの序列だけではなく、モンスターのリダイレクトも定義しなければならない。
====つまらない例====
上に行くほど強くなる無限の塔を考える。
すなわち、強さの序列が0階<1階<2階<・・・と無限に続いていく。
a階のモンスターはa-1階にリダイレクトするものとする。(a>=1)
このとき、この塔に付随する巨大関数はf(α,n)=α+nである。このことはαに関する数学的帰納法で示せる。せっかくなので証明しておこう。
=====証明=====
(i) α=0のとき: f(0,n)は定義から明らかにnである。0+nは(足し算の定義から示そうとすると)そこまで自明ではないがnである。よって両辺は等しい。
(ii) α=kのときの成立を仮定してα=k+1のとき(k>=0): カウンターがnの状態でk+1階のモンスターを倒すとカウンターがn+1になってk階にリダイレクトされる。よってf(k+1,n)=f(k,n+1)=k+(n+1)である。いっぽう(k+1)+nも足し算の定義からk+(n+1)であるから、両辺は等しい。
(i)(ii)より、f(α,n)=α+nが示された。