何よりも大きな話をしよう(無限,超限順序数の話)
僕は何度か色々なところで巨大数の話をしてきたと思うが、今日はちょっと趣向を変えて有限ではなく無限の数の話をしようと思う。「無限」の捉え方は色々あるのだが、今回は以前の記事でちょっとだけ触れた「超限順序数」というものについて語りたいと思う。
順序数とは
そもそも「数とは何ぞや」という話から始まる。数について色々な説明の仕方があるとは思うが、その中でペアノさんが導き出した自然数に対する根源的な公理が「ペアノの公理」だ。ペアノの公理の詳しい内容については他のサイトにお任せするとして、一番重要なのは以下の2点である。
- 最初の数(0でも1でも)がある
- どの数にも「次の数」がある
「何であるか」という問いに対し最低限の要件のみを与え「そのように振る舞うものがそれである」と言ってしまうのが「公理」だ。曖昧な言葉の意味へ言及することを避けるためだ。
要は「最初の数」と「次の数」さえ定義されればそれは数(自然数)と呼ぶことが出来るということだ。例えば関数型プログラミングをかじったり舐めたりしたことのある人ならチャーチ数という言葉に聞き覚えがあるはずだ。それもペアノの公理を満たす数の定義の一種だ。
今回は集合を使ってこの「最初の数」と「次の数」を定義する。これが「順序数」である。
式だけだと分かりにくかろう。実際にこれを元に1,2,3,……を表そうとするとこうなる。
要するに0は空っぽの集合で、それ以降は自分の直前までの数の集合ということになる。こう定義すると数の大小関係の定義がやりやすく厳密になる。ある数はその数の直前までの数を全て含んでいるので、含んでいる方が大きくて含まれている方が小さいのだ。
ではここで「自然数全体の集合」というものを考えてみよう。どの自然数も「自然数全体の集合」に含まれているので、「自然数全体の集合」を順序数と見なすとこれはどの自然数よりも大きいということになる。
このωのように有限ではない順序数のことを「超限順序数」と呼ぶ。ところで、このωは自然数の集合であるから、自然数以外の余計な物は含んでいない。故に「ちょうどピッタリ自然数より大きい数」だと言える。「ωより小さくて自然数より大きい」数は存在しないということだ。
超限順序数を足し算してみよう
ω+1を計算してみよう。さっきの定義を思い出せばすぐ出来る。
このようにωには前の数ω-1は無いが次の数ω+1はちゃんとある。では今度は2を足してみよう。集合での表記は面倒臭いので以後割愛する。
最初の定義をもう一度思い出してほしい。定義にあるのはsuc即ち+1の演算だけだった。だから+2とは+1を2回繰り返すことだし、+nとは+1をn回繰り返すことになる。「何を当たり前のことを」と思うかもしれないが、そういう細かいことを気にしていかないと次の演算を理解できない。
さてゆっくりこの一見頭のおかしい式について考えてみよう。+nが+1をn回繰り返すことならば、+ωは+1をω回繰り返すことになるだろう。
いきなりω回+1を繰り返すのはちょっと無理があるので、ゆっくりωに近づいていこう。最初はこうなる。
これを自然数n回繰り返してるとこうなる。
nが自然数ならば当然n+1も自然数だ。そしてこのnが自然数の限界を突破するまでこの作業は続く。逆に言うと自然数の壁を突破する直前までは常に自然数だ。つまりn回目の+1でωになっちゃったりはしないので、1+ωがωより大きくなるのは不可能なのだ。数式で表現するとこう。
が有限なはずもないので必然的にとなるわけだ。
要するにωとは「自然数を全て数え上げる」という不可能なはずの動作をやってのけるバグ技みたいなものだ。自然数は無限にあるのでちょっとやそっと途中から数え始めたくらいでωを超えられるわけではない。
じゃあ+ωしたものは全部ωになってしまうのだろうか? そうではない。ωにならωを足すことで値を増やせる。
ω+nだけで普通の自然数と同じだけ続いているので、その限界を超えることでより大きな 超限順序数ω+ωを練成できる。
超限順序数を掛け算してみよう(序章)
さすがに長くなってきたので、この辺で終わりにしよう。最後に少しだけ掛け算を定義してみる。
実に単純な話だ。ωを2個足してるのだからωかける2、それだけだ。次回は掛け算でも前後を交換出来ないこと、そしてもっと不思議な掛け算やさらに複雑なべき乗について扱っていこうと思う。
そんな感じで。
*1:suc(x)とは「xの次の数」即ち「x+1」という意味になる。