偽計数学妨害罪

うるせぇ、こっちは遊びで数学やってんだよ

車万臣丈類4

東方巨大数4で出そうとしていたネタ

共通事項

  • 「計算法」のrule1、rule2、rule3...は上から順に適用可能か判断する。(「if」としか書いてないが、意味的にはelseif文である。)
  • (\lambda x.f(x))^na=f^n(a) (多変数関数の反復に使う。なお、第4β超限行列のみ記号被りのためxの代わりに\alphaを用いる。)
  • 0∈\mathbb{N}
  • 数値は桁数に関わらず1文字として数える。

第4準ヒドラシステム

概要

ラベル付き角括弧と非負整数を使った「有限ラベル付き準ヒドラ」シリーズの一つで、ラベルだけでなく木構造そのものに大小関係を定めて比較するのが特徴。
東巨1の後に没ネタとして「2層ヒドラ」という名前で構想を公開し、東巨2で「Y関数」としてエントリーするも無効となったものの完成形。

表記

正規形:nH_4C

メモ
正規形には"]_20[]_9][["のような「変な」文字列も含まれ、そういったものの中には計算規則が適用できないものも含まれる。しかし、後述の第4準ヒドラ数の計算ではそのような文字列は現れない。(と思う)

サブルール

N

N(c)=\begin{cases}1&\text{if} c∈R\\0&\text{if} c∈\mathbb{N}\\-1&\text{if} c="["\end{cases}

部分列

A=a_0a_1a_2...a_l
S(A,b,d)=a_ba_{b+1}a_{b+2}...a_d
S(A,b,b-1)は空文字列

左ペア

A=a_0a_1a_2...a_l
LP(A,b)=\text{Max}\{d|(d≤b)∧(\displaystyle{\sum_{e=d}^bN(a_e)=0})\}

メモ
a_bが右括弧のとき、LP(A,b)は対応する左括弧を表す。

右ペア

A=a_0a_1a_2...a_l
RP(A,b)=\text{min}\{d|(b≤d)∧(\displaystyle{\sum_{e=b}^dN(a_e)=0})\}

メモ
a_bが左括弧のとき、RP(A,b)は対応する右括弧を表す。

ラベル

R(]_a)=a

A=a_0a_1a_2...a_l
p(A,b)=\text{min}\{d|(b<d)∧(\displaystyle{\sum_{e=b+1}^dN(a_e)=1})\}

P(A,b,d)=\text{min}\{e|(∃f[(\lambda x.p(A,x))^fb=e])∧(R(a_e)=d)\}

メモ
a_bが右括弧または数字のとき、a_{p(A,b)}a_bの親を表す。
a_bが右括弧または数字のとき、P(A,b,d)a_bの直系先祖かつラベルがdであるものを表す。

家族

A=a_0a_1a_2...a_l
u(A,b)=\begin{cases}"0"&\text{if} LP(b)-1=LP(b+1)\\""&\text{othenwise}\end{cases}
F(A,b,d)=S(A,LP(P(A,b+1,d)),LP(b)-1)\frown u(A,b)\frown S(A,b+1,P(A,b,d))

メモ
a_bが右括弧または数字のとき、F(A,b,d)は「a_bの親」から「ラベルがdであるような、a_bの直系先祖」までの文字列を表す。

大小比較

A=a_0a_1a_2...a_lB=b_0b_1b_2...b_m
A<B⇔∃d[(∀e[{(}(e<d)⇒(a_e=b_e))∧{(}(a_e=b_e="[")⇒(a_{RP(A,e)}=b_{RP(B,e)}))])∧(
     {(}(a_d∈\mathbb{N})∧(b_d="["))∨
     {(}(\{a_d,b_d\}⊂\mathbb)∧(a_d<b_d))∨
     {(}(a_d∈R)∧(b_d∈\mathbb{N}))∨
     {(}(a_d=b_d="[")∧(R(a_{RP(A,d)})<R(b_{RP(B,d)})))
     )]

メモ
ヒドラのノードを左から順にチェックし、

  • 先に数値ノードに達する
  • 数値が小さい
  • 数値が0(省略される)
  • ラベルが小さい

の内1つを満たしたら小さい。

A=a_0a_1a_2...a_l
s(A)=\text{Max}\{b|a_b∈\mathbb{N}\}

計算法

  • \epsilon:空文字列
rule1:\text{if} C=\epsilon

nH_4C=n

rule2:\text{if} s(C)=k

b=c_k
nH_4C=(n+b)H_4c_0c_1c_2...c_{k-1}

rule3:\text{if} (c_{s(C)}="1")∧(c_{s(C)-1}≠"[")
  • i=LP(s(C)+1)
  • j=s(C)
  • C'_1=c_0c_1c_2...c_{i-1}
  • C'_2=c_ic_{i+1}c_{i+2}...c_{j-1}c_{j+1}
  • C'_3=c_{j+2}c_{j+3}c_{j+4}...c_k

nH_4C=nH_4C'_1\frown \underbrace{C'_2\frown C'_2\frown C'_2\frown ...C'_2}_nC'_3

rule4:\text{if} (c_{s(C)}∈\mathbb{N})∧(0<c_{s(C)})
  • h=c_{s(C)}-1
  • i=LP(s(C)+1)
  • j=s(C)
  • C'_1=c_0c_1c_2...c_{i-1}
  • C'_2=c_ic_{i+1}c_{i+2}...c_{j-1}hc_{j+1}
  • C'_3=c_{j+2}c_{j+3}c_{j+4}...c_k

nH_4C=nH_4C'_1\frown \underbrace{C'_2\frown C'_2\frown C'_2\frown ...C'_2}_nC'_3

rule5:\text{if} (c_{s(C)}="0")∧(R(c_{s(C)+1})=0)
  • i=s(C)-1

nH_4C=nH_4c_0c_1c_2...c_{s(C)-2}nc_{s(C)+2}...c_k

rule6:\text{otherwise}
  • r=\text{min}\{d|(s(C)<d)∧(R(c_{d})=R(s(C))-1)∧({(}R(c_{d+1})+1=R(c_{d}))∨

   (F(C,d,R(c_{s(C)})-1)<F(C,s(C),R(c_{s(C)})-1)))

  • C'_1=c_0c_1c_2...c_{LP(r+1)}
  • C'_2=c_{LP(r+1)+1}c_{LP(r+1)+2}c_{LP(r+1)+3}...c_{s(C)-2}
  • C'_3=c_{s(C)+2}c_{s(C)+3}c_{s(C)+4}...c_r
  • C'_4=c_{r+1}c_{r+2}c_{r+3}...c_k
  • c'=u(C,s(C))

nH_4C=nH_4C'_1\frown \underbrace{C'_2\frown C'_2\frown C'_2\frown ...C'_2}_n\frown c'\frown \underbrace{C'_3\frown C'_3\frown C'_3\frown ...C'_3}_n\frown C'_4

命名

T_4(n)=nH_4[[[[[[...[[0]_n]_n...]_2]_2]_1]_1]_0]_0

第4準ヒドラ=T_4^{10}(10)

計算例

rule1

3H_4=3

rule2

3H_4[[[0]_1[2]_0]_0]_03=6H_4[[[0]_1[2]_0]_0]_0

rule3

3H_4[[[2]_1[[0]_11]_0]_0]_0=3H_4[[[2]_1[[0]_1]_0[[0]_1]_0[[0]_1]_0]_0]_0

rule4

3H_4[[[2]_1[[0]_12]_0]_0]_0=3H_4[[[2]_1[[0]_11]_0[[0]_11]_0[[0]_11]_0]_0]_0

rule5

3H_4[[[[0]_1]_1[[0]_0]_1]_0]_0=3H_4[[[[0]_1]_1[3]_1]_0]_0

rule6

3H_4[[[[[0]_2]_2[0]_2[[[[[0]_2]_2[0]_2[[[0]_2]_2]_1]_1]_2]_1 ]_1]_0]_0

  • C'_1="[[[[[0]_2]_2[0]_2"
  • C'_2="[[[[[0]_2]_2[0]_2[["
  • c'=""
  • C'_3="]_2]_1]_1]_2]_1"
  • C'_4="]_1]_0]_0"]

=3H_4[[[[[0]_2]_2[0]_2[[[[[0]_2]_2[0]_2[[[[[[[0]_2]_2[0]_2[[[[[[[0]_2]_2[0]_2[[]_2]_1]_1]_2]_1]_2]_1]_1]_2]_1]_2]_1]_1]_2]_1]_1]_0]_0

評価

[[[0]_1]_0]_0=[[[[...]_0]_0]_0]_0=B(0,0)(1,1)
[[[0]_1]_01]_0=[[[0]_1]_0]_0[[[0]_1]_0]_0[[[0]_1]_0]_0...=B(0,0)(1,1)(1,0)
[[[0]_1]_0[[0]_1]_0]_0=[[[0]_1]_0[[[...]_0]_0]_0]_0=B(0,0)(1,1)(1,0)(2,1)
[[[0]_11]_0]_0=B(0,0)(1,1)(1,0)(2,1)(2,0)
[[[0]_1[[[0]_1]_0]_0]_0]_0=B(0,0)(1,1)(1,0)(2,1)(2,0)(3,1)
[[[0]_1[[0]_1]_0]_0]_0=[[[0]_1[[[0]_1[[[0]_1[...]_0]_0]_0]_0]_0]_0]_0=B(0,0)(1,1)(1,1)
[[[0]_1[[0]_1]_0[[0]_1]_0]_0]_0=[[[0]_1[[0]_1]_0[[[0]_1[[0]_1]_0[[[0]_1[[0]_1]_0[...]_0]_0]_0]_0]_0]_0]_0=B(0,0)(1,1)(1,1)(1,1)
[[[0]_1[[0]_11]_0]_0]_0=B(0,0)(1,1)(2,0)
[[[0]_1[[0]_1[[[0]_1]_0]_0]_0]_0]_0=B(0,0)(1,1)(2,0)(3,1)
[[[0]_1[[0]_1[[0]_1]_0]_0]_0]_0=[[[0]_1[[0]_1[[[0]_1[[0]_1[[[0]_1[[0]_1[...]_0]_0]_0]_0]_0]_0]_0]_0]_0]_0=B(0,0)(1,1)(2,1)
[[[0]_1[[0]_1[[0]_1]_0]_0[[0]_1]_0]_0]_0=B(0,0)(1,1)(2,1)(1,1)
[[[0]_1[[0]_1[[0]_1]_0]_0[[0]_1[[0]_1]_0]_0]_0]_0=B(0,0)(1,1)(2,1)(1,1)(2,1)
[[[0]_1[[0]_1[[0]_1]_0[[0]_1]_0]_0]_0]_0=B(0,0)(1,1)(2,1)(2,1)
[[[0]_1[[0]_1[[0]_1[[0]_1]_0]_0]_0]_0]_0=B(0,0)(1,1)(2,1)(3,1)
[[[0]_1[0]_1]_0]_0=[[[0]_1[[0]_1[[0]_1...]_0]_0]_0]_0=B(0,0)(1,1)(2,2)
[[[0]_1[0]_1[[0]_1]_0]_0]_0=B(0,0)(1,1)(2,2)(1,1)
[[[0]_1[0]_1[[0]_1[[0]_1[0]_1]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(1,1)(2,2)
[[[0]_1[0]_1[[0]_1[[0]_1[0]_1]_0[[0]_1]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(2,1)
[[[0]_1[0]_1[[0]_1[[0]_1[0]_1]_0[[0]_1[0]_1]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(2,2)
[[[0]_1[0]_1[[0]_1[[0]_1[0]_1[[0]_1]_0]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(3,1)
[[[0]_1[0]_1[[0]_1[[0]_1[0]_1[[0]_1[[0]_1[0]_1]_0]_0]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(3,1)(4,2)
[[[0]_1[0]_1[[0]_1[0]_1]_0]_0]_0=[[[0]_1[0]_1[[0]_1[[0]_1[0]_1[[0]_1[[0]_1[0]_1[[0]_1...]_0]_0]_0]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(3,2)
[[[0]_1[0]_1[0]_1]_0]_0=[[[0]_1[0]_1[[0]_1[0]_1[[0]_1[0]_1...]_0]_0]_0]_0=B(0,0)(1,1)(2,2)(3,3)
[[[1]_1]_0]_0=[[[0]_1[0]_1[0]_1...]_0]_0=B(0,0,0)(1,1,1)
[[[1]_1[[0]_1]_0]_0]_0=[[[1]_1[[[1]_1[[[1]_1[...]_0]_0]_0]_0]_0]_0]_0=B(0,0,0)(1,1,1)(1,1,0)
[[[1]_1[[0]_1[[1]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(1,1,0)(2,2,1)
[[[1]_1[[0]_1[[1]_1[[0]_1[[1]_1]_0]_0]_0]_0]_0]_0=B(0,0,0)(1,1,1)(1,1,0)(2,2,1)(2,1,0)(3,2,1)
[[[1]_1[[0]_1[0]_1]_0]_0]_0=[[[1]_1[[0]_1[[1]_1[[0]_1[[1]_1[[0]_1...]_0]_0]_0]_0]_0]_0]_0=B(0,0,0)(1,1,1)(1,1,0)(2,2,1)(2,2,0)
[[[1]_1[[1]_1]_0]_0]_0=[[[1]_1[[0]_1[0]_1[0]_1...]_0]_0]_0=B(0,0,0)(1,1,1)(1,1,1)
[[[1]_1[[1]_11]_0]_0]_0=[[[1]_1[[1]_1]_0[[1]_1]_0[[1]_1]_0...]_0]_0=B(0,0,0)(1,1,1)(2,0,0)
[[[1]_1[[1]_1[[0]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)
[[[1]_1[[1]_1[[0]_1]_0]_0[[1]_1]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,1,0)(2,2,1)
[[[1]_1[[1]_1[[0]_1]_0]_0[[1]_1[[0]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,1,0)(2,2,1)(3,1,0)
[[[1]_1[[1]_1[[0]_1]_01]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,1,0)(3,0,0)
[[[1]_1[[1]_1[[0]_1]_0[[0]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,1,0)(3,1,0)
[[[1]_1[[1]_1[[0]_1[0]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,2,0)
[[[1]_1[[1]_1[[0]_1[0]_1[[1]_1]_0]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,2,0)(4,3,1)
[[[1]_1[[1]_1[[1]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,1)
[[[1]_1[[1]_1[[1]_1]_01]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(2,0,0)
[[[1]_1[[1]_1[[1]_1]_0[[1]_1]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(2,1,0)(1,1,1)
[[[1]_1[[1]_1[[1]_11]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(3,0,0)
[[[1]_1[[1]_1[[1]_1[[0]_1]_0]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(3,1,0)
[[[1]_1[[1]_1[[1]_1[[1]_1]_0]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(3,1,0)(1,1,1)
[[[1]_1[0]_1]_0]_0=[[[1]_1[[1]_1[[1]_1...]_0]_0]_0]_0=B(0,0,0)(1,1,1)(2,1,0)(3,2,0)

解説

ヒドラ表示

数値をラベル無しの項で表すことで、Cを木として表すことができる。

f:id:Hassium277:20211010205207p:plain
☝[[[0]₁3]₀[2]₀]₀のヒドラ表示
rule1

終了規則

rule2

ハーディー階層型の増加規則

rule3、rule4
f:id:Hassium277:20211010213911p:plain
☝rule3とrule4

実質同じ規則だが0を消すためだけに分けた。

rule5

f:id:Hassium277:20211010230427p:plain
ここまでは有限ラベル付き準ヒドラシリーズの共通ルール。
この図描いてたら数字項の存在意義がほとんど無いことに気付いた。

rule6

面倒なので実際のルールと計算例を無視して、構想通りの展開を説明する。(定義通りの展開と一致しなかった場合、多分こっちが正しい。)

f:id:Hassium277:20211011202016p:plain
☝[[[[[0]₁]₁]₁[[[[[0]₁]₁[0]₁[[[0]₁]₁[[[[0]₁]₁[0]₁]₀]₁]₀]₀]₁]₀]₀]₀

まず、「右端の頂点の直系先祖で、ラベルが右端より1小さい頂点」で木を区切る。
f:id:Hassium277:20211011211533p:plain
上から順に、右端の頂点を含む木と大小比較して小さい木を探す。
f:id:Hassium277:20211011211827p:plain
小さい木が見つかったら、その小さい木の直後(右上)から左端の直前までの範囲をコピーする。
f:id:Hassium277:20211011214524p:plain

変則拡張第4配列システム

概要

ネスト構造のある配列システムにラベル構造を組み合わせることでバシク行列そっくりな挙動をすることを発見したので、自作の配列系システムである第4配列システムにねじ込んだもの。
見た目が東巨1に投稿した「幻想配列システム」に似ているが、全く無関係。

表記

正規形:nL_4C

サブルール

N

N(c)=\begin{cases}1&\text{if} c∈R\\-1&\text{if} c="["\\0&\text{otherwise}\end{cases}

部分列

A=a_0a_1a_2...a_l
S(A,b,d)=a_ba_{b+1}a_{b+2}...a_d
S(A,b,b-1)は空文字列

左ペア

A=a_0a_1a_2...a_l
LP(A,b)=\text{Max}\{d|(d≤b)∧(\displaystyle{\sum_{e=d}^bN(a_e)=0})\}

メモ
a_bが右括弧のとき、LP(A,b)は対応する左括弧を表す。

右ペア

A=a_0a_1a_2...a_l
RP(A,b)=\text{min}\{d|(b≤d)∧(\displaystyle{\sum_{e=b}^dN(a_e)=0})\}

メモ
a_bが左括弧のとき、RP(A,b)は対応する右括弧を表す。

ラベル

R(a)=\begin{cases}b&\text{if} a="]_b"\\0&\text{otherwise}\end{cases}

A=a_0a_1a_2...a_l
p(A,b)=\text{min}\{d|(b<d)∧(\displaystyle{\sum_{e=b+1}^dN(a_e)=1})\}
dが存在しなければp(A,b)=l+1とする。

P(A,b)=\text{min}\{d|(∃e[(\lambda x.p(A,x))^eb=d])∧(R(a_d)<R(a_b))\}

メモ
a_bが右括弧、数字、カンマのどれかのとき、a_{p(A,b)}a_bの親を表す。
a_bが右括弧のとき、a_{P(A,b)}a_bの直系先祖かつラベルがa_bより小さいものを表す。

位置

A=a_0a_1a_2...a_l
pos(A,b)=|\{d|(b<d)∧(a_{d}=",")∧(P(A,b)=p(A,d))\}|

a_bが右括弧か数字のとき、a_bは「a_bよりラベルが小さい直系先祖」の右からpos(A,b)番目の直系子孫である。

開始点

A=a_0a_1a_2...a_l
s(A)=\text{Max}\{b|(a_b∈\mathbb{N})∧(((a_b=0)∧(a_{b-1}="["))∨(0<a_b))\}

レベルアップ

A=a_0a_1a_2...a_l
U(A,b,d,e)=\begin{cases}"]_{R(a_b)+d}"&\text{if} (a_b∈R)∧(∃f[(\lambda x.P(A,x))^fb)=e])\\a_b&\text{otherwise}\end{cases}

計算法

rule1:\text{if} k=0

nL_4C=n+c_0

rule2:\text{if} s(C)=k

nL_4C=(n+c_k)L_4c_0c_1c_2...c_{k-1}0

rule3:\text{if} pos(C,s(C))=0
  • b=c_{s(C)}-1
  • C_1'=S(C,0,LP(C,s(C)+1)-1)
  • C_2'=S(C,LP(C,s(C)+1),s(C)-1)\frown b\frown c_{s(C)+1}
  • C_3'=S(C,s(C)+2,k)

nL_4C=nL_4C_1'\frown \underbrace{C_2'\frown C_2'\frown...C_2'}_n\frown C_3'

rule4:\text{if} (c_{s(C)}=0)∧R(c_{p(C,s(C)})=0)
  • C_1'=S(C,0,LP(C,p(C,s(C)))-1)
  • C_2'=S(C,p(C,s(C))+2,k)

nL_4C=nL_4C_1'\frown n \frown C_2'

rule5:\text{if} c_{s(C)}=0
  • r=P(C,p(C,s(C)))
  • C_1'=S(C,0,LP(C,r)-1)
  • C_2'=S(C,LP(C,r),s(C)-2)
  • C_3'=S(C,p(s(C))+1,r)
  • C_4'=S(C,r+1,k)

nL_4C=nL_4C_1'\underbrace{C_2'\frown C_2'\frown...C_2'}_n\frown \underbrace{C_3'\frown C_3'\frown...C_3'}_n\frown C_4'

rule6:\text{otherwise}
  • b=c_{s(C)}-1
  • r=\text{Max}\{d|(s(C)<d)∧(pos(C,d)<pos(C,s(C)))∧(∃e[(\lambda x.P(C,x))^ep(C,s(C))=P(C,d)])\}
  • r'=\text{min}\{d|(p(C,RP(C,r'))=p(C,r))∧(pos(C,LP(C,d))=pos(C,r))\}
  • \delta=R(c_{p(C,s(C))})-R(c_{P(C,r)})
  • C_1'=S(C,0,r'-1)
  • C'_2=C'_{2,0}\frown C'_{2,1}\frown C'_{2,2}\frown ...C'_{2,n}
    • C'_{2,d}=c'_{2,d,r'}c'_{2,d,r'+1}c'_{2,d,r'+2}...c'_{2,d,s(C)-1}b
      • c'_{2,d,e}=U(C,e,\delta d,P(C,r))
  • C'_3=C'_{3,n}...\frown C'_{3,2}\frown C'_{3,1}\frown C'_{3,0}
    • C'_{3,d}=c'_{3,d,s(C)+1}c'_{3,d,s(C)+2}c'_{3,d,s(C)+3}...c'_{3,d,r}
      • c'_{3,d,e}=U(C,e,\delta d,P(C,r))
  • C_4'=S(C,r+1,k)

nL_4C=nL_4C'_1\frown C'_2\frown C'_3\frown C'_4

命名

A_4(n)=nL_4[[1,\underbrace{0,0,0...0}_n]_10]_00

変則拡張第4配列数=A_4^{10}(10)

メモ
第4準ヒドラでは右括弧の左にある0を消去するようにしていたが、消去しないほうが定義が簡潔になることに気付いたのでこのシステムでは消さないようにした。第4準ヒドラも同様に簡略化できるが、修正が面倒だったので放置することにした。

計算例

rule1

3L_42=5

rule2

3L_4[[1,0]_10]_01=4L_4[[1,0]_10]_00

rule3

3L_4[[1,3]_10]_00=3L_4[[1,2]_1[1,2]_1[1,2]_10]_00

rule4

3L_4[[1,[0]_00]_10]_00=3L_4[[1,3]_10]_00

rule5

3L_4[[1,[1,[0,0]_30]_20]_10]_00

  • C_1'="[[1,"
  • C_2'="[1,"
  • C_3'="0]_2"
  • C_4'="0]_10]_00"

2L_4[[1,[1,[0,0]_30]_20]_10]_00=2L_4[[1,[1,[1,[1,0]_20]_20]_20]_10]_00

rule6

2L_4[[[0]_00,0]_1[3,0]_10]_00

  • C_1'="["
  • C_2'="[[0]_00,0]_1[2,[[0]_00,0]_2[2,[[0]_00,0]_3[2,"
    • C'_{2,0}="[[0]_00,0]_1[2,"
    • C'_{2,1}="[[0]_00,0]_2[2,"
    • C'_{2,2}="[[0]_00,0]_3[2,"
  • C_3'="0]_30]_20]_1"
    • C'_{3,0}="0]_1"
    • C'_{3,1}="0]_2"
    • C'_{3,2}="0]_3"
  • C_4'="0]_00"

2L_4[[[0]_00,0]_1[3,0]_10]_00=[[[0]_00,0]_1[2,[[0]_00,0]_2[2,[[0]_00,0]_3[2,0]_30]_20]_10]_00

評価

※括弧の右の0を省略。\[\]
 例:[0,0,1,0]_00[1,0]_0
[[1,0]_1]_0=[[[[...]_3]_2]_1]_0=B(0,0,0)(1,1,1)
[[1,0]_11]_0=[[1,0]_1]_0[[1,0]_1]_0[[1,0]_1]_0...=B(0,0,0)(1,1,1)(1,0,0)
[[1,0]_1[0]_1]_0=[[1,0]_1[[1,0]_1[[1,0]_1...]_0]_0]_0=B(0,0,0)(1,1,1)(1,1,0)
[[1,0]_1[[1,0]_2]_1]_0=[[1,0]_1[[[[...]_4]_3]_2]_1]_0=B(0,0,0)(1,1,1)(1,1,0)(2,2,1)
[[1,0]_1[1,0]_1]_0=[[1,0]_1[[1,0]_2[[1,0]_3[...]_3]_2]_1]_0=B(0,0,0)(1,1,1)(1,1,1)
[[1,1]_1]_0=B(0,0,0)(1,1,1)(2,0,0)
[[1,[0]_0]_1]_0=B(0,0,0)(1,1,1)(2,0,0)(3,0,0)
[[1,[0]_0]_1[1,0]_1]_0=[[1,[0]_0]_1[[1,[0]_0]_2[[1,[0]_0]_3[...]_3]_2]_1]_0=B(0,0,0)(1,1,1)(2,0,0)(3,0,0)(1,1,1)
[[1,[0]_1]_1]_0=[[1,[[1,[[1,...]_1]_0]_1]_0]_1]_0=B(0,0,0)(1,1,1)(2,1,0)
[[1,[0]_1]_1[1,0]_1]_0=[[1,[0]_1]_1[[1,[0]_2]_2[[1,[0]_3]_3[...]_3]_2]_1]_0=B(0,0,0)(1,1,1)(2,1,0)(1,1,1)
[[1,[[1,0]_2]_1]_1]_0=[[1,[[[[...]_4]_3]_2]_1]_1]_0=B(0,0,0)(1,1,1)(2,1,0)(3,2,1)
[[1,[1,0]_1]_1]_0=[[1,[[1,[[1,[...]_3]_3]_2]_2]_1]_1]_0=B(0,0,0)(1,1,1)(2,1,1)
[[1,[1,0]_1]_1[1,0]_1]_0=[[1,[1,0]_1]_1[[1,[1,0]_2]_2[[1,[1,0]_3]_3[...]_3]_2]_1]_0=B(0,0,0)(1,1,1)(2,1,1)(1,1,1)
[[1,[1,0]_11]_1]_0=B(0,0,0)(1,1,1)(2,1,1)(2,0,0)
[[1,[1,0]_1[1,0]_1]_1]_0=B(0,0,0)(1,1,1)(2,1,1)(2,1,1)
[[1,[1,1]_1]_1]_0=B(0,0,0)(1,1,1)(2,1,1)(3,0,0)
[[1,[1,[1,0]_1]_1]_1]_0=B(0,0,0)(1,1,1)(2,1,1)(3,1,1)
[[1,[0]_2]_1]_0=[[1,[1,[1,...]_1]_1]_1]_0=B(0,0,0)(1,1,1)(2,2,0)
[[1,[1,0]_2]_1]_0=[[1,[[[...]_4]_3]_2]_1]_0=B(0,0,0)(1,1,1)(2,2,0)(3,3,1)
[[1,[1,1]_2]_1]_0=B(0,0,0)(1,1,1)(2,2,0)(3,3,1)(4,0,0)
[[1,[1,[1,0]_2]_2]_1]_0=B(0,0,0)(1,1,1)(2,2,0)(3,3,1)(4,3,1)
[[1,[1,[0]_3]_2]_1]_0=B(0,0,0)(1,1,1)(2,2,0)(3,3,1)(4,4,0)
[[2,0]_1]_0=[[1,[1,[1,...]_3]_2]_1]_0=B(0,0,0)(1,1,1)(2,2,1)

解説

rule1

終了規則。「右括弧の右にある数値を消さない」というルール変更により第4準ヒドラと異なる書き方になった。

rule2

ハーディー階層型の増加規則。0を消さずに残す。

rule3

第4準ヒドラのrule3、4とほぼ同じ。

rule4

第4準ヒドラのrule5。

rule5

c_{s(C)}が0なら、ラベルが小さい直系先祖までをコピーする。(c_{s(C)}とその親の配列は消す)
f:id:Hassium277:20211016153529p:plain
第3準ヒドラと同じ。

rule6

まず、c_{s(C)}の親のpos値がc_{s(C)}のpos値より小さいかどうかを調べる。
f:id:Hassium277:20211023154423p:plain
pos値が小さかったら、まず「「c_{s(C)}の直系先祖で、c_{s(C)}の親よりラベルが小さいもの」のうち最も右側にあるもの」をc_Rとする。(c_Rは実際の定義文中でのP(C,r)に対応する)
次に、c_Rの子で一番右側にある右括弧をc_rとし、「右ペアがc_Rの子であるような左括弧のうち最も左側にあるもの」をc_{r'}とする。
そして、c_{r'}からc_rまでを複製範囲とする。
f:id:Hassium277:20211023161038p:plain
複製範囲の全ての右括弧に対して、ラベルが小さい直系先祖を辿ってc_Rに辿り着けるかどうかを調べる。
f:id:Hassium277:20211023162520p:plain
c_Rs(C)の親のラベルの差を\deltaとし、c_{s(C)}の値を1減らし、さっきの探索でc_Rに辿り着けた右括弧に\deltaを足しながら複製範囲を複製する。
f:id:Hassium277:20211023175454p:plain
ここまでの説明は、rの定義におけるe=0の場合に相当する。

c_{s(C)}の親のpos値がc_{s(C)}のpos値より小さくなかった場合は、ラベルが小さい直系先祖を辿ってpos値がc_{s(C)}の親より小さい右括弧を探す。
f:id:Hassium277:20211023210306p:plain
見つかった右括弧の直系先祖かつラベルが小さいもののうち最も右側にあるものをc_Rとする。あとは最初の例と同じ。
f:id:Hassium277:20211023213353p:plain

f:id:Hassium277:20211024004422p:plain

第4β超限行列システム

表記

  • x,y,y',a_{x,y},k,n:非負整数
  • S_x=(a_{x,0},a_{x,1},a_{x,2}...)
  • M=S_0S_1S_2...S_k

正規形:M[n]

  • ∀y'[(y<y')⇒(a_{y'}=0)]を満たすyが存在するとき、(a_0,a_1,a_2...a_y,a_{y+1},a_{y+2}...)(a_0,a_1,a_2...a_y)と略記してもよいとする。

サブルール

N=T_0T_1T_2...T_l
T_x=(b_{x,0},b_{x,1},b_{x,2}...)
p(N,e,f)=\begin{cases}\text{Max}\{g|(g<e)∧(b_{g,f}<b_{e,f})\}&\text{if} f=0\\\text{Max}\{g|(g<e)∧(b_{g,f}<b_{e,f})∧(∃h[(\lambda \alpha.p(N,\alpha,f-1))^he=g])\}&\text{otherwise}\end{cases}

メモ
BMで使うやつと同じ。

子孫

N=T_0T_1T_2...T_l
T_x=(b_{x,0},b_{x,1},b_{x,2}...)
c(N,e,f,g)=\begin{cases}b_{e,f}&\text{if} g=0\\\text{min}\{h|(c(N,e,f,g-1)<h)∧(∃i[(\lambda \alpha.p(N,\alpha,f))^ih=e])\}&\text{otherwise}\end{cases}
C(N,e,f)=(b_{c(N,e,f,0),f},b_{c(N,e,f,1),f},b_{c(N,e,f,2),f}...b_{c(N,e,f,|\{g|∃h[(\lambda \alpha.p(N,\alpha,f))^hg=e]\}|),f})

メモ
c(N,e,f,g)b_{e,g}g番目の子孫の位置を表す。
C(N,e,f)b_{e,f}とその子孫全体を表す。

大小比較

B=(b_0,b_1,b_2...b_l)
C=(c_0,c_1,c_2...c_m)
B<C⇒∃d[(∀e[(0<e<d)⇒(b_e-b_{e-1}=c_e-c_{e-1})])∧({(}b_d-b_{d-1}<c_d-c_{d-1})∨(l<d))]

左から階差を比較して、小さい値が出るか端に到達したらその列は小さい。

計算法

  • Z:零ベクトル
rule1:\text{if} k=0

M[n]=n+1

rule2:\text{if} S_k=Z

M[n]=S_0S_1S_2...S_{k-1}[n+1]

rule3:\text{otherwise}
  • h=\text{min}\{b|a_{k,b}=0\}
  • r=\begin{cases}\text{Max}\{b|(b<k)∧(∀e[(e<h)⇒({(}∃f[(\lambda \alpha.p(M,\alpha,e))^fk=p(M,b,e)])∧\\({(}∃g[(g<k)∧(p(M,g,e)=p(M,k,e))])⇒(∃i[(i=\text{Max}\{j|(j<b)∧\\(p(M,j,e)=p(M,b,e))\})∧(C(M,i,e)<C(M,p(M,k,e),e))])))])\}&\text{if} ∃b\\\\0&\text{otherwise}\end{cases}
  • \Delta=D_0D_1D_2...D_{k-r-1}
    • D_x=(d_{x,0},d_{x,1},d_{x,2}...)
      • d_{0,y}=\begin{cases}a_{k,y}-a_{r,y}&\text{if} y<h\\a_{k,h}-a_{r,h}-1&\text{if} h≤y≤h+n\\0&\text{otherwise}\end{cases}
      • d_{x+1,y}=\begin{cases}d_{0,y}&\text{if} (∃b[(\lambda \alpha.p(M,\alpha,y))^b(r+x+1)=p(M,r,y)\)∧*1\\0&\text{otherwise}\end{cases}]

A=S_0S_1S_2...S_{r-1}
B_0=S_rS_{r+1}S_{r+2}...S_{k-1}
B_b=B_0+\Delta×b
M[n]=AB_0B_1B_2...B_n[n]

命名

f(x)=(0)(\underbrace{1,1,1...1}_n)[n]
第4β超限行列数=f^{10}(10)

計算例

rule1

(0,0,0)[2]=3

rule2

(0,0,0)(1,1,1)(0,0,0)[2]=(0,0,0)(1,1,1)[3]

rule3

(0)(1,1)(0)(1)(0)(1)(2)(2)[2]

  • h=0
  • r=4
  • \Delta=(1,1,1)(1,1,1)(1,1,1)

(0)(1,1)(0)(1)(0)(1)(2)(2)[2]
=(0)(1,1)(0)(1)(0)(1)(2)(1,1,1)(2,1,1)(3,1,1)(2,2,2)(3,2,2)(4,2,2)[2]

評価

(0)(1)(2)=B(0,0)(1,1)
(0)(1)(2)(1,1)=|(0)(1)(2)|(1)(2)(3)|(2)(3)(4)|...=B(0,0)(1,1)(2,1)(3,1)
(0)(1)(2)(1,1)(1)(2)=B(0,0)(1,1)(2,2)

解説

rule1

終了規則。

rule2

ハーディー階層型の増加規則。

rule3
f:id:Hassium277:20211123230838p:plain
☝(0,0,0)(1,1,1)(2,2,1)(3,3,1)(5,5,1)(1,1,1)(2,2,1)(1,1,1)(2,2,2)(3,3,0)(4,4,0)(3,3,3)(4,4,3)(5,4,3)の行ヒドラ表記。3行目の下は0が無限行並んでいる。

まず、右端の0でない要素が一人っ子かどうか調べる。

f:id:Hassium277:20211123231243p:plain
☝1行目の右端は一人っ子だが、2行目と3行目はそうではない。(4行目以下は0なので無視する)

一人っ子ではなかった行に対して、「右端の要素の親の家族(その要素とその子孫全体からなるヒドラ)」と「右端の要素の親の直系先祖の子であり、右端の要素の直系先祖ではない要素の家族」の大きさを比較して、小さい家族を探す。

f:id:Hassium277:20211123231408p:plain
☝根元に「<」と書かれているのが小さい家族。

右端が0でない全ての行で以下の条件を満たす位置で列を区切り、区切った右側(右端を除く)を複製範囲とする。

  • 右端が一人っ子なら、右端の要素の直系先祖であるような要素の左側。
  • 右端が一人っ子でないなら、右端の親の家族より小さい家族の右端の右側。
f:id:Hassium277:20211123232659p:plain
☝一行目では直系先祖の左側、2行目と3行目では小さい家族の右側で区切っている。

右端の列を削除し、最下行では「削除前の右端-複製範囲の左端-1」の値を、最下行の下のn-1行は最下行と同じ値を、最下行より上は「削除前の右端-複製範囲の左端」を複製範囲に足しながら複製する。ただし、「複製範囲の左端の要素の親の直系子孫ではない要素」と「真上の値が増えなかった要素」には足さない。

f:id:Hassium277:20211123233159p:plain
☝3行目の左から11、12個目の要素は複製範囲の左端の要素の親の直系子孫ではないため何も足されず、その真下の要素も同様に値を増やさない。

余談

没理由

  • この記事の内容全体が「没ネタ」になったのは、東方巨大数4のルール内で東方要素との関連付けが義務付けられたことによる。
    • ちなみにこの記事を書き始めたのは確か7月中、3つの定義が書き終わったのは10月なので、東方要素に関する規定が無かったとしてもこの3本を全部出すのは不可能であったことは明らかである。

第4準ヒドラシステム

  • 構想自体は一番古くからあったので一番最初に定義を書き始めたが、完成までに一番時間がかかった。
    • [[[1]_1]_0]_0以降の構想がかなり曖昧で、[[[[[0]_1]_0]_1]_0]_0[[[[0]_1]_1]_0[[[[[0]_1]_1]_0]_1]_0]_0のようなラベルが1の括弧が重なる構造の扱いに苦戦し、考えれば考えるほど訳が分からなくなり、結局定義が書きやすいものを選んだので正常に動作するか正直わからない。

変則拡張第4配列システム

  • 執筆開始時点での構想の解像度がかなり高かったものの、標準形の形や複製範囲などの細部の仕様を決めるのに若干苦戦した。
  • 構想を思いついたのが雨穴さんの「茶道*DANCE SPACE」の公開と大体同時期だったため、あの曲を聴くと無意識的に変則拡張第4配列システムについて考えてしまう癖がついた。

www.youtube.com

第4β超限行列システム

  • 第4β超限行列システムは、β数列シリーズの1つである「第4β数列システム」を「超限行列システム」と同じコンセプトで行列化したものである。
    • β数列シリーズは、巨大数研究wikiのブログ記事で構想のみ載せてて放置してある「β関数」に関連する数列システム群で、それぞれ以下の名称で公開済みである。
      • 第0β数列:偽原始数列
      • 第1β数列:LSZNO数列
      • 第2β数列:第2大偽原始数列
      • 第3β数列:第3大偽原始数列
      • 第4β数列:(未公開)
      • 元々はこの記事の公開後にβ系列をまとめたブログ記事を巨大数研究wikiに投稿する予定だったが、いつの間にかwikiの編集画面の仕様が大改悪されておりモチベーションが消失したので諦めた。
  • Twitter上で「4に関するネタが4つある」と発言したが、改めて数えると3つしかなかった。
    • β4で定義される数の案が4つあったのでそれと混同していたものと思われる。
      • (0)(1)(2)(2)[n]、(0)(1,1)[n]、(0)(2)[n]、(0)(n)[n]という関数をネストしたものを考えていたが、後半2つの定義が完成しなさそうだったので1つに絞った。

没ネタの没ネタ

  • この記事自体にも没ネタがある。
\xi関数

概要
SKIコンビネータ計算に「後続項」と「順序数項」を追加した計算システムを利用した、計算可能かつ基本列が定義可能な順序数表記。

  • (1+X)x=1+x(X) ※(X+1)は後続項
  • ((O)x)[n]=(x(O[n]) ※Oは極限順序数
  • (0)x=x
  • \xi(0)=\omega

1個の順序数項だけを残して計算が終了する文字列を順序数と見做し、\xi(\alpha+1)[n]を「\xi(\alpha)以下の順序数とSKIコンビネータを使ってn文字以下で記述できる最大の順序数」とする。

・・・みたいな。
計算例
(2)ss(ξ(0))=1+s(1)s(ξ(0))=1+s(ξ(0))((1)(ξ(0)))
没理由

  • 計算不可能関数自体が個人的にあまり好きではない。
  • 「比較的弱い計算不可能関数の評価指標」というコンセプトだが、完成したところで実用性があるかは怪しい。
  • SKIコンビネータだけで何ができるのかちゃんと把握できていないので、めちゃくちゃ冗長なことをしているような気がする。
  • 定義が完成させられない。
    • 大小関係とか、基本列の絞り込みとか、いろいろ定義しなければならないことがある。
    • そもそも、順序数表記の定義をちゃんと書いたことが無い。
  • 東巨4の投稿期間終了までに思い付いたネタではなかった気がする。

*1:0<y)⇒(0<d_{x+1,y-1}