巨大数研究 Wiki
Advertisement

記念すべき巨大数研究 Wiki 設立初年の最終日です。今日は巨大数納めとして、ふぃっしゅ数バージョン5 の読解に努めました。ちょっと急いで書いたので細かいところが雑です。ご了承ください。

まず事前知識として、別分野ですが『圏論の基礎』の「はじめに」から以下を引用します。

各射 \(f:X \rightarrow Y\) が関数を表すとしよう.つまり集合 \(X\),集合 \(Y\) および,各要素 \(x \in X\) に要素 \(fx \in Y\) を割り当てる規則 \(x \mapsto fx\) を表す.可能な限り \(f(x)\) ではなく \(fx\) と書き,不要な括弧は省略することにする.

ここで、この文章が示す圏論に入る前の知識の話をしたいのではありません。私は知らなかったのですが、関数を書く時に括弧を省略する記法があるということを示したかったのです。これに気付くまでに、少しばかり時間を使ってしまいました。

ではまず、『巨大数論』にあるふぃっしゅ数バージョン5 の定義をここに引用します。

[1] 集合 \(M_n (n = 0, 1, 2, ...)\) を以下のように定める。

  • \(M_0\) = 自然数の集合
  • \(M_{n+1}\) = 写像 \(M_n \rightarrow M_n\) 全体の集合
  • \(M_n\) の元を \(M_n\) 変換と呼ぶ

[2] \(M_n\)変換 \(m(n) (n \ge 1)\) を以下のように定める。

\(f_n \in M(n)\) に対して、 \(m(n+1)(f_n) = g_n\) を以下で定める。
\(f_{n-1} \in M(n-1)\) に対して、 \(g_n(f_{n-1}) = g_{n-1}\) を以下で定める。
\(f_{n-2} \in M(n-2)\) に対して、 \(g_{n-1}(f_{n-2}) = g_{n-2}\) を以下で定める。
……
\(f_0 \in M(0)\) に対して、 \(g_1(f_0) = g_0\) を以下で定める。
\(g_0 = (..((f_n^{f_0}f_{n-1})f_{n-2})...f_1)f_0\)

すなわち \begin{eqnarray*} m(1)(f_0) & = & {f_0}^{f_0} \\ (m(2)f_1)f_0 & = & ({f_1}^{f_0})(f_0) \\ (..((m(n+1)f_n)f_{n-1})...f_1)f_0 & := & (..({f_n}^{f_0}{f_{n-1}})...f_1)f_0 \end{eqnarray*}

[3] ふぃっしゅ関数 \(F_5(x)\) を以下のように定める。

\begin{eqnarray*} F_5(x) & := & ((..((m(x)m(x-1))m(x-2))...m(2))m(1))(x) \end{eqnarray*}

[4] そして、ふぃっしゅ数バージョン5はこのように定義される。

\begin{eqnarray*} F_5 & := & F_5^{63}(3) \end{eqnarray*}

まず \(M_n\) の元を \(M_n\) 変換としていますが、m(n)変換というページがあることからもわかるように、

\begin{eqnarray*} M_n の元 = M_n 変換 = m(n) 変換 \end{eqnarray*}

です。\(m(1)(f_0) = f_0^{f_0}\) とありますが、\(f_0 \in M(0)\) すなわち \(f_0 \in M_0\) ですので、\(f_0\) は自然数、\(m(1)\) は自然数 \(n\) から自然数 \(n^n\) への写像ということになります。

次に \((m(2)f_1)f_0 = (f_1^{f_0})(f_0)\) とあります。まず \(m(2)\) は「(自然数から自然数への写像)から(自然数から自然数への写像)への写像」です。また \(f_1 \in M_1\) であり、また \(M_1 = M_0 \rightarrow M_0\) ですので、\(f_1\) は「自然数を値域と定義域に持つ写像」です。仮にここでの \(f_1\) が \(g(x) = x + 1\)、\(f_0\) が \(x\) であった場合、\((m(2)g)x = (g^x)(x)\) となります。\((m(2)f_1)f_0\) で \(m(2)\) は \(f_1\) を引数としていますから、そこに \(g\) を渡しているということです。その \(M_2\) 変換の結果の関数に \(x\) を渡しています。つまりこれは加算ですね。

ここでふぃっしゅ数バージョン3 の中で定義されている s(n)変換と ss(n) 変換を引用します。

[1] 関数f(x)からg(x)への写像s(n) (\(n>0\)) (s(n)変換) を以下のように定める。 \begin{eqnarray*} s(1)f & := & g; g(x)=f^x(x) \\ s(n)f & := & g; g(x)=[s(n-1)^x]f(x) (n>1) \end{eqnarray*}

[2] 関数f(x)からg(x)への写像ss(n) (\(n>0\))を以下のように定める。 \begin{eqnarray*} ss(1)f & := & g; g(x)=s(x)f(x) \\ ss(n)f & := & g; g(x)=[ss(n-1)^x]f(x) (n>1) \\ \end{eqnarray*}

見てわかる通り、\(m(2)f(x) = s(1)f\) です。

次に \(((m(3)m(2))f)(x)\) を考えます。まず \(((m(3)f_2)f_1)f_0 = ((f_2^{f_0})f_1)(f_0)\) です。これは

\begin{eqnarray*} (..((m(n+1)f_n)f_{n-1})...f_1)f_0 & := & (..({f_n}^{f_0}{f_{n-1}})...f_1)f_0 \end{eqnarray*}

という定義からわかります。ここで \(f_1\) は前述のように「(自然数から自然数への写像)から(自然数から自然数への写像)への写像」ですが、\(f_2\) は「(自然数から自然数への写像)から(自然数から自然数への写像)への写像を値域と定義域とする写像」です。\(m(3)\) は \(f_2\) を引数とします。

ということは \(((m(3)m(2))f)(x)\) において、\(f_2\) となるのは \(m(2)\) そのものです。\(m(3)\) によって、この \(f_2\) を数え上げます。よって

\begin{eqnarray*} ((m(3)m(2))f)(x) = ((f_2^{f_0})f_1^{f_0})(f_0) \end{eqnarray*}

です。これは \(s(2)\) と一致します。

s(n)変換はこの数え上げを定数回、すなわち n 回繰り返します。この n の数を 1 つ増やすことは、\(m(3)\) すなわち \(M_3\) 変換 1 回で表現できますから、\(m(3)^n m(2) = s(n + 1)\) です。

ここで \(s(n + 1)\) となっているのは『巨大数論』での計算と異なりますが、こちらが正しいと思います。

しかし、これではまだ定数回の繰り返しです。これを数え上げるために使用するのが \(m(4) = (((f_3^{f_0})f_2)f_1)(f_0)\) です。この変換の引数として \(m(3)\) を使うことにより、

\begin{eqnarray*} m(4)m(3)m(2) & = & ((f_3^{f_0}(f_2^{f_0}))f_1^{f_0})(f_0) \\ & = & m(3)^{f_0}m(2) \\ & = & s(x) \\ & = & ss(1) \end{eqnarray*}

となり、s(n)変換を数え上げることができます。

s(n)変換と ss(n) 変換はより上位の数え上げを行う操作であり、その手法は同じです。また s(n)変換の結果は「(自然数から自然数への写像)から(自然数から自然数への写像)への写像」あり、それを数え上げているだけの ss(1) 変換の結果もまた同様であるため、それを \(m(3)\) に渡すことで ss(n) 変換の n を更に進めることができます。すなわち \(m(3)[m(4)m(3)]m(2) = ss(2)\) です。ここから更に一般化を進めると \(m(3)^n[m(4)m(3)]m(2) = ss(n + 1)\) です。

更に、この \(m(3)^n\) という定数回の操作は \(m(4)\) で数え上げができますから、

\begin{eqnarray*} [m(4)m(3)][m(4)m(3)]m(2) & = & (f_3^{f_0}(f_2^{f_0}))((f_3^{f_0}(f_2^{f_0}))f_1^{f_0}) \\ & = & [m(4)m(3)]^2 m(2) \\ & = & ss(x) \end{eqnarray*}

となります。

ここでちょっと対角化について書きたいと思います。

アッカーマン関数において \(Ack(m, n)\) の m と n を同時に大きくすると、ハイパー演算子相当の操作とその引数を同時に強くできるため、操作の対角化を行なうことができます。これはふぃっしゅ数バージョン1 における重要な部分ですね。

この 2 重帰納関数を更に数え上げた 3 変数アッカーマン関数 \(Ack(l, m, n)\) は 3 重帰納関数です。更に対角化の軸が増えるということですから、私はこれを個人的に「3 次元の対角化」と呼んでいます。つまり多変数アッカーマン関数や ss(1) 変換は、n 次元の対角化ということになります。\(F_3\) はこれを 63 回繰り返していますから、超次元とでも呼ぶべできしょうか。関数の一覧BEAF で超次元という単語が使われていますが、どのような意味なのかを私はまだ追えていないので、これが適切なのかどうか、理解できている方はご教示ください。

このエントリでは、とりあえず上記の意味で超次元という単語を使います。

話を戻します。\([m(4)m(3)][m(4)m(3)]m(2)\) で ss(n) 変換の数え上げができているので、これは超次元の対角化です。ここから更に n 超次元の対角化に進んでいきます。

ここからは『巨大数論』の記述の通り、\(f(x) \approx F[\alpha](x)\) の時、\(m(2)f(x) \approx F[\alpha + 1](x)\) を \(m(2) = F[+1]\) と便宜的に表記すると、

\begin{eqnarray*} m(3)m(2) & = & F[+\omega] \\ m(4)m(3)m(2) & = & F[+\omega^\omega] \\ m(5)m(4)m(3)m(2) & = & F[+\omega^{\omega^\omega}] \\ & \vdots & \\ m(x)m(x-1) \dots m(3)m(2) & = & F[+\omega \uparrow \uparrow (x-2)] \end{eqnarray*}

となります。これはさきほど説明した超次元を更に超えた更なる超次元での対角化が行なわれています。これが \(F_5(x) \approx F[\varepsilon_0]\) です。

と書いていたら、日本時間でとっくに日付が変わっていました。間違いやわかりにくいところなど、ご指摘がありましたらコメントをください。適宜更新していきます。

Advertisement