\( \newcommand{\node}{ {\mathcal N} } \newcommand{\gnd}{ {\mathcal G} } \newcommand{\nat}{ {\mathbb N} } \newcommand{\bm}[1]{ {\boldsymbol {#1}}} \newcommand{\if}{~{\rm if}~} \newcommand{\lex}{\lt_{\rm lex}} \newcommand{\lexeq}{=_{\rm lex}} \newcommand{\lexlt}{\lt_{\rm lex}} \newcommand{\lexgt}{\gt_{\rm lex}} \newcommand{\lexseq}{\lt_{\rm lexseq}} \newcommand{\lexseqeq}{=_{\rm lexseq}} \newcommand{\lexseqlt}{\lt_{\rm lexseq}} \newcommand{\lexseqgt}{\gt_{\rm lexseq}} \newcommand{\rows}{ {\rm rows}} \newcommand{\cols}{ {\rm cols}} \newcommand{\seq}{ {\rm seq}} \) There is English translation here as well.

Dimensional BMS (DBMS) は、バシク行列システム(BMS)とかなり似た性質を持ち、(0)(1)(2,1)(3,2,1) のような数列の列の形をしている表記である。

従来の研究

discord ユーザーの Ecl1psed は2019年9月14日に discord[1] サーバーである Googology Server[2] 中の bashicu-matrix チャンネル[3]に DBMS の順序数対応といくつかの展開例を投稿した[4]。Ecl1psed は自分が初めの DBMS の発明者ではないかもしれないと言っている[5]が、現状ログに残る最古のログは上記の投稿である。

また、ゆきとは、この DBMS と等価である YBM と呼ばれる表記を Ecl1psed とは独立に発明し、(0)(1)(2,1)(3,2,1)(4,3,2,1)...の形をした YBM、DBMS の展開方法が BM4 の展開関数 \({\rm expand(X[n])}\) と同じであり、また、Y(1,3) 未満の Y数列 と列ごとに対応すると言っていた。

discord ユーザーの AxiomaticSystem は2020年6月3日に Pointer-BMS という DBMS に等価な行列展開システムの展開プログラムを作り、discord に投稿した[6]。またその後、AxiomaticSystem は、2020年7月17日に Pointer-BMS と DBMS と Y 数列を相互に変換するプログラムをプログラム投稿サイト Repl.it で公開した[7]。これによって DBMS とY数列が相互に一対一変換できることが明らかになった。

提案

この記事では、第一に、 DBMS の数式による再定義を試みる。

第二に、AxiomaticSystem の結果に一致するが、またそれとは別の観点から、Y数列をDBMSとの一対一対応によって再定義することを試みる。


記法

自然数とカンマと\((\) と \()\) から成る文字列集合 \(T_\seq\)と、\(T_\seq \mapsto \nat \) 上の関数 \(\rows(s) \) を下記で再帰的に定める:

  1. \(() \in T_\seq\).
  2. \(\rows(())=0\).
  3. \(\left( s\frown (n) \in T_\seq \right) \leftarrow \left( s \in T_\seq \land n \in \nat \right) \).
  4. \(\left( \rows(s\frown (n))=\rows(s)+1 \right) \leftarrow \left( s \in T_\seq \land n \in \nat \right) \).

ここで \(\frown\) は\( \nat^2 \rightarrow \nat \) 上の2項演算子で \(a_0,a_1,\cdots,a_{k_a},b_0,b_1,\cdots,b_{k_b} \in \nat\) において \( (a_0,a_1,\cdots,a_{k_a}) \frown (b_0,b_1,\cdots,b_{k_b}) \) \(= (a_0,a_1,\cdots,a_{k_a},b_0,b_1,\cdots,b_{k_b}) \) である。

自然数とカンマと\((\) と \()\) から成る文字列集合 \(T\) と、\(T \mapsto \nat \) 上の関数 \(\cols(m) \) を下記で再帰的に定める:

  1. \( (()) \in T \).
  2. \( \cols((()))=0 \).
  3. \(\left( m\frown (s) \in T \right) \leftarrow \left( m \in T \land s \in T_\seq \right) \).
  4. \(\left( \cols(m)=\cols(m)+1 \right) \leftarrow \left( m \in T \land s \in T_\seq \right) \).

ここで \(\frown\) は\( T_\seq^2 \rightarrow T_\seq \) 上の2項演算子で \(a_0,a_1,\cdots,a_{k_a},b_0,b_1,\cdots,b_{k_b} \in T_\seq\) において \( (a_0,a_1,\cdots,a_{k_a}) \frown (b_0,b_1,\cdots,b_{k_b}) \) \(= (a_0,a_1,\cdots,a_{k_a},b_0,b_1,\cdots,b_{k_b}) \) である。

~インフォーマル・コラム~
\(T_\seq\) は有限数列であり、DBMS の行に相当し、\(T\) は有限数列の有限列であり、DBMSの行列に相当する。ちなみに慣習的には \(T_\seq\) の後ろのゼロを省略して (3,0,0)=(3,0)=(3) のように書いたり、\(T\) 上のカンマと全体を包む丸括弧を省略して((0,0,0),(1,1,1))=(0,0,0)(1,1,1)と書かれることがほとんどである。この記事ではその文法だと定義がしにくいので省略せずに書いてある。 \(\rows(y)\) は \(y\) の行数(=要素数)を出力する関数、 \(\cols(x)\) は \(x\) の列数を出力する関数となる。


辞書式順序集合

\(T_\seq^2\) 上の2項関係 \( x\lexseqlt y, ~x\lexseqgt y\) を下記で定める (\(x,y,z \in T_\seq\), \(a,b \in \nat\), \(x\neq(),y\neq()\),\(z\neq() \)):

  1. \( () \lexseq x \).
  2. \( x\frown z \lexseq y \leftarrow x \lexseq y \).
  3. \( x \lexseq y\frown z \leftarrow x \lexseq y \).
  4. \( z\frown (a) \lexseq z\frown (b) \leftrightarrow a \lt b \).
  5. \(x \lexseqgt y \leftrightarrow y \lexseqlt x\).

\(T^2\) 上の2項関係 \( x\lexlt y, ~x\lexgt y\) を下記で定める(\(x,y,z \in T\),\(a,b \in T_\seq\), \(x\neq(()),y\neq(())\),\(z\neq(()) \):

  1. \( (()) \lex x \).
  2. \( x \lex y \rightarrow x\frown z \lex y \).
  3. \( x \lex y \rightarrow x \lex y\frown z \).
  4. \( z\frown (a) \lex z\frown (b) \leftrightarrow a \lexseq b \).
  5. \( y \lexlt x \leftrightarrow x \lexgt y \).
~インフォーマル・コラム~
\(\lex\) も \(\lexseq\) も、左から順番に比較を始めて要素が大きい方が大きく、同じならひとつ右の要素に移って調べる、という動作を繰り返して比べることに相応する。例えば、(4,3,2,0) と (4,3,1,1) であれば、4=4、3=3、2>1 なので (4,3,2,0) \(\lexseqgt\) (4,3,1,1) となり、(0)(1)(2,1)(3,2,1)(4) と (0)(1)(2,1)(3,2)(4,3) であれば、(0)=(0)、(1)=(1)、(2,1)=(2,1)、(3,2,1)\(\lexseqgt\)(3,2,0) なので (0)(1)(2,1)(3,2,1)(4) \(\lexgt\) (0)(1)(2,1)(3,2)(4,3) となる。1.は空列よりも要素がある列の方が大きい、2.,3.は先頭が小さければ列が長くても小さい、4.は先頭が同じなら末尾で比べる、5.は \(\lex\) の反対は \(\lexgt\) である、というようなことを表している。


線形順序集合

\(LT_\seq \subset T_\seq \) を下記で定める:

  1. \(() \in LT_\seq \).
  2. \((0) \in LT_\seq \).
  3. \( (a_0,a_1) \in LT_\seq \leftarrow \left( a_0,a_1 \in \nat \land a_0 \gt a_1 \right) \).
  4. \( a \frown (a_0,a_1) \in LT_\seq \\ \leftarrow \left( a, \in LT_\seq \land a_0,a_1 \in \nat \land a_1 \lt a_0 \right) \).

\(LT \subset T \) を下記で定める:

  1. \((()) \in LT\).
  2. \(((0)) \in LT \).
  3. \(a\frown ((0)) \in LT \leftarrow a \in LT\).
  4. \(a \frown (b_0\frown b)\frown c \frown(d_0\frown d) \leftarrow \left( \\ a \in LT \\ (b\frown b_0) \in T \land \\ c \in T \land \\ (d\frown d_0) \in T \land \\ a \frown (b_0\frown b)\frown c \in LT \land \\ b,d \in LT_\seq \land \\ b_0,d_0 \in \nat \land \\ d_0 \leq b_0+1 \\ \right) \).
~インフォーマル・コラム~
\(LT\) は次の2条件を満たす \(T\) のみを集めたものになる。(条件1) 列の中の要素は必ず減っていかないといけない。例えば、(5,4,3),(5,4,2),(5,4,1),(5,4,0) は許されるが (5,4,5) は 4 から 5 に増えているし (5,4,4) は 4 から 4 に減っていないので許されない。 (条件2) 行列に新しい列を加える時は、新しい列の先頭要素は(古い行列の中のいずれかの列の先頭要素に1を加えた数)以下か、または 0 でないといけない。例えば、(0)(1)(2,1)(2,1) に加えられるのは、0+1=1以下の数字か、1+1=2以下の数字か、1+1=2以下の数字か、2+1=3 以下の数字である。つまり、(0)(1)(2,1)(2,1)(0), (0)(1)(2,1)(2,1)(2,1), (0)(1)(2,1)(2,1)(3,0), (0)(1)(2,1)(2,1)(3,2,1) などは許されるが、(0)(1)(2,1)(2,1)(4) などは許されない。


基本形

\(FT \in LT \) を下記のように定める:

  1. \((()) \in FT \).
  2. \(((0)) \in FT \).
  3. \(x\frown y \in FT \leftarrow \left(\\ x \in FT \land \\ y = \max_{\lex}\{y'| x\frown y' \in LT \land \cols(y')=1 \} \\\right)\)
~インフォーマル・コラム~
基本形\(FT\)とは、列数が同じ行列の中で \(\lex\) にて最大となる\(LT\)で、(0),(0)(1),(0)(1)(2,1),(0)(1)(2,1)(3,2,1)と\((0)(1)(2,1)\cdots(x,x-1,x-2,\cdots,2,1,0)\cdots\) の形をした\(LT\)である。バシク行列で言うところの(0),(0,0)(1,1),(0,0,0)(1,1,1),…,(0…0)(1…1)、Y数列で言うところの(1),(1,2),(1,2,4),(1,2,4,8),…,(1,2,…,2^x,…)のようなものである。


標準形

Dimensional BMS (DBMS) \(OT \in FT\) を下記のように定める.

  1. \(X \in FT \rightarrow X \in OT\).
  2. \(\forall b \in \nat(X \in OT \rightarrow X[b] \in OT)\).
~インフォーマル・コラム~
標準形の定義には下記の基本列展開\(\cdot[\cdot]\) の定義が必要になる。標準形を、基本形と標準形の展開結果、と定めていることになる。証明は示されたことがないが、 \((OT,\lex)\) が順序数表記となることが期待されている。


基本列展開

\(OT \times \nat \mapsto OT \) 上の関数 \(\cdot[\cdot]\) を下記のように定める。

\begin{eqnarray*} S[n]&=&\left\{\begin{array}{ll} (()) & {\rm if}~S=(()) \\ S_0 \frown S_1 \frown \cdots \frown S_{\cols(S)-2} & {\rm if~}\forall yS_{\cols(S)-1y}=0\\ G \frown B^{(0)} \frown B^{(1)} \frown \cdots \frown B^{(n)} & {\rm otherwise} \end{array}\right.\\ \mathrm{行列:}~S&=&(S_0,S_1,\cdots, S_{\cols(S)-1})\in OT\\ \mathrm{列:}~S_x&=&(S_{x0},S_{x1},\cdots,S_{x(\rows(S_x)-1)})\in T_\seq\\ \mathrm{良い部分:}~G&=&(S_0,S_1,\cdots,S_{r-1})\\ \mathrm{悪い部分:}~B^{(a)}&=&(B_0^{(a)},B_1^{(a)},\cdots,B_{\cols(S)-2-r}^{(a)})\in T\\ \mathrm{悪い部分の列:}~B_x^{(a)}&=&(B_{x0}^{(a)},B_{x1}^{(a)},\cdots,B_{x(\rows(S_x)-1)}^{(a)})\in T_\seq\\ \mathrm{悪い部分の要素:}~B_{xy}^{(a)}&=&S_{(r+x)y}+a\Delta_{y}A_{xy}\in \nat\\ \mathrm{上昇量:}~\Delta_{y}&=&\left\{\begin{array}{ll} S_{(\cols(S)-1)y}-S_{ry}&(\mathrm{if}~y\lt t)\\ 0 &(\mathrm{if}~y\geq t) \end{array}\right.\in \nat\\ \mathrm{上昇行列:}~A_{xy}&=&\left\{\begin{array}{ll} 1 &(\mathrm{if}~ \exists a( r=(P_{y})^a(r+x)))\\ 0 &(\mathrm{otherwise}) \end{array}\right.\in \nat\\ \mathrm{非零最下行:}~t&=&\max\{y|S_{(\cols(S)-1)y}\gt 0\}\in \nat\\ \mathrm{bad root:}~r &=& P_t(\cols(S)-1)\in \nat\\ S_{xy}~\mathrm{の親}:~P_{y}(x)&=&\left\{\begin{array}{ll} \max\{p|p\lt x \land S_{py} \lt S_{xy} \land \exists a( p=(P_{y-1})^a(x))\} & (\mathrm{if}~y\gt 0)\\ \max\{p|p\lt x \land S_{py} \lt S_{xy} \} & (\mathrm{if}~y=0)\\ \end{array}\right.\in \nat\\ \end{eqnarray*}

~インフォーマル・コラム~
ここで、上記の \(S, S_k, S_{xy}, G, B^{(k)}\) は バシク行列システム バージョン BM4 による定義[8]をほぼそのまま用いている。一点、展開の関数 \({\rm expand}\) については、BMS の \(X'[b]={\rm expand}(X[b])\) は出力が自然数であるのに対し、DBMS の \(\cdot[\cdot]\) では出力は行列であることが異なる。


FGH

\(OT \times \nat \mapsto \nat \)上の関数\(f_X(n)\) を下記で定める。

  1. \(f_{X}(n)=f_{X[g(n)]}(g(n)) \leftarrow \not\exists X'~(X=X' \frown (0)) \)
  2. \(g(n)=n^2\)


巨大数

DBMSを用いると下記の巨大数が表現できると予想されている。

  1. 原始数列数は \(f^{10}_{(0)(1)(2,1)}(9)\) に等しい。
  2. ペア数列数は \(f^{10}_{(0)(1)(2,1)(3,2,1)}(9)\) に等しい。
  3. トリオ数列数は \(f^{10}_{(0)(1)(2,1)(3,2,1)(4,3,2,1)}(9)\) に等しい。
  4. バシク行列は下記の\(\nat\mapsto\nat\)上の関数\(\bm{BM}(n)\) を使って \({\bm BM}^{10}(9)\) と表される。
    1. \(\bm{BM}(n)=f_{X}(n) \leftarrow X=\max_{\lex}\{X'|\cols(X)\leq n\}\)

Y数列との対応

以降ではY数列を \(Y(s_0,s_1,s_2,\cdots,s_k)\) とし、DBMS X を DBMS(X)と書いて、それらの一対一対応からY数列を再定義する。

  1. \({\rm Y}()={\rm DBMS}(((())))\)
  2. \({\rm Y}(1)={\rm DBMS}(((0)))\)
  3. \({\rm Y}(Y\frown (y))=({\rm DBMS}(X\frown (x))\)<br\>\(\leftarrow (x=(y\in \nat \land x \in T_\seq \land\) \(Y \in T_\seq \land\) <br\>\(X\in OT\land\)<br\> \({\rm Y}(Y)={\rm DBMS}(X) \land\)<br\> \(\rows(X\frown x)=\rows({\rm DBMS}(X))+1\)) を満たす \(y\) 番目に大きな \(T_\seq\) の要素).
~インフォーマル・コラム~
既存に検討されている展開規則に一致することの証明はまだない。これはここで定義が与えられた DBMS、プログラムと数式で定義が与えられた BM4 の定義と合わせるとY(1,3)未満のY数列の定義を与えているとも言えるのではないだろうか。Axiomatic System 2019 では親との階差 arr[i][-1]-arr[i-nex[i][-1]][-2] によって新規追加する子の列の値を求めているのに対し、それに結果はおそらく一致する[9]が、本提案では、元の数列 Y に対応する DBMS X の右に列を 1 つ置いて作れる大きさが k 番目の DBMS を追加するという部分は、また別の新たな発見であろう。特に、次の対応例を見てみるとそのことがよくわかる。

Y数列との対応例

下記に Y(1,2,4,8,9,8) の構成を基にしたDBMSとY数列の対応例を示す。

  1. Y()=DBMS(())。
  2. Y((1)) = DBMS((0))
  3. Y(1,1) = (Y(1)=DBMS(0)の右に置いて作れる 1 番目のDBMS) = DBMS(0)(0).
  4. Y(1,2) = (Y(1)=DBMS(0)の右に置いて作れる 2 番目のDBMS) = DBMS(0)(1).
  5. Y(1,2,1) = (Y(1,2)=DBMS(0)(1)の右に置いて作れる 1 番目のDBMS) = DBMS(0)(1)(0).
  6. Y(1,2,2) = (Y(1,2)=DBMS(0)(1)の右に置いて作れる 2 番目のDBMS) = DBMS(0)(1)(1).
  7. Y(1,2,3) = (Y(1,2)=DBMS(0)(1)の右に置いて作れる 3 番目のDBMS) = DBMS(0)(1)(2).
  8. Y(1,2,4) = (Y(1,2)=DBMS(0)(1)の右に置いて作れる 4 番目のDBMS) = DBMS(0)(1)(2,1).
  9. Y(1,2,4,1) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 1 番目のDBMS) = DBMS(0)(1)(2,1)(0).
  10. Y(1,2,4,2) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 2 番目のDBMS) = DBMS(0)(1)(2,1)(1).
  11. Y(1,2,4,3) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 3 番目のDBMS) = DBMS(0)(1)(2,1)(2).
  12. Y(1,2,4,4) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 4 番目のDBMS) = DBMS(0)(1)(2,1)(2,1).
  13. Y(1,2,4,5) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 5 番目のDBMS) = DBMS(0)(1)(2,1)(3).
  14. Y(1,2,4,6) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 6 番目のDBMS) = DBMS(0)(1)(2,1)(3,1).
  15. Y(1,2,4,7) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 7 番目のDBMS) = DBMS(0)(1)(2,1)(3,2).
  16. Y(1,2,4,8) = (Y(1,2,4)=DBMS(0)(1)(2,1)の右に置いて作れる 8 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1).
  17. Y(1,2,4,8,1) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 1 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(0).
  18. Y(1,2,4,8,2) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 2 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(1).
  19. Y(1,2,4,8,3) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 3 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(2).
  20. Y(1,2,4,8,4) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 4 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(2,1).
  21. Y(1,2,4,8,5) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 5 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(3).
  22. Y(1,2,4,8,6) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 6 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(3,1).
  23. Y(1,2,4,8,7) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 7 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(3,2).
  24. Y(1,2,4,8,8) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 8 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(3,2,1).
  25. Y(1,2,4,8,9) = (Y(1,2,4,8)=DBMS(0)(1)(2,1)(3,2,1)の右に置いて作れる 9 番目のDBMS) =DBMS(0)(1)(2,1)(3,2,1)(4).
  26. Y(1,2,4,8,9,1) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 1 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(0).
  27. Y(1,2,4,8,9,2) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 2 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(1).
  28. Y(1,2,4,8,9,3) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 3 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(2).
  29. Y(1,2,4,8,9,4) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 4 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(2,1).
  30. Y(1,2,4,8,9,5) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 5 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(3).
  31. Y(1,2,4,8,9,6) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 6 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(3,1).
  32. Y(1,2,4,8,9,7) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 7 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(3,2).
  33. Y(1,2,4,8,9,8) = (Y(1,2,4,8,9)=DBMS(0)(1)(2,1)(3,2,1)(4)の右に置いて作れる 8 番目のDBMS) = DBMS(0)(1)(2,1)(3,2,1)(4)(3,2,1).

その他

DBMS は、本来は、 (0)(1)(2,1,,1) のような "double comma" や "triple comma" などの表記を用いて拡張することによって多次元空間に要素を持つバシク行列システムを構成し、バシク行列システムを超える大きさを持つことを目標として作られているらしく、上限が(0)(1)(2,1,,1,,,1,,,,1,,,,,1...) となるところまで拡張が可能ではないかと言われている[10]

特に記載のない限り、コミュニティのコンテンツはCC-BY-SA ライセンスの下で利用可能です。