バードの配列表記

**バードの配列表記**（バードのはいれつひょうき）とは、クリス・バード（英:Chris Bird）によって考案された巨大数の表記法である。これはBEAFの拡張配列表記の拡張で、歴史的にも定義的にもBEAFと同族である。

## 線形配列
線形配列では、バードの配列表記はBEAFと同じである。

**Rule 1-1.**\{a\}=a

**Rule 1-2.**\{a,b\}=a^b

**Rule 2.**\{\#,1\}=\{\#\}

**Rule 3.**\{a,1\#\}=a

**Rule 4.**\{a,b,\underbrace{1,\cdots,1}_{d},c,\#\}=\{\underbrace{a,\cdots,a}_{d+1} ,\{a,b-1,\underbrace{1,\cdots,1}_{d},c,\#\},c-1,\#\}

**Rule 5.**\{a,b,c\#\}=\{a,\{a,b-1,c,\#\},c-1\#\}

ただし\#は配列の変わらない部分を指す。

線形配列では、急増加関数で\{\underbrace{a,\cdots,a}_{a}\}\approx f_{\omega^\omega}(a)と近似される。

## 多次元配列
多次元配列では、配列の一部を\acute{}ab\textrm{'}と表記する。線形配列と同様、BEAFと同じである。

**Rule A1.**\acute{}ab\textrm{'}=\acute{}a\textrm{'}

**Rule A2.**\acute{}a1\textrm{'}=\acute{}a\textrm{'}

**Rule A3.**\acute{}ab\textrm{'}=\acute{}ab[c]a(b-1)\textrm{'}

**Rule M1.**\{a,b\}=a^b

**Rule M2.**\{\#[m]1[n]\#\}=\{\#[n]\#\}(m（これは上記の**Rule 2**も含む）

**Rule M3.**\{a,1\#\}=a

**Rule M4.**\{a,b [m_1] 1 [m_2] \cdots 1 [m_x] c \#\} = \{a \langle m_1 \rangle b [m_1] a \langle m_2 \rangle b [m_2] \cdots a \langle m_x \rangle b [m_x] (c-1) \#\}

**Rule M5.**\{a,b [m_1] 1 [m_2] \cdots 1 [m_x] 1,1,\cdots,1,1,c \#\} = \{a \langle m_1 \rangle b [m_1] a \langle m_2 \rangle b [m_2] \cdots a \langle m_x \rangle b [m_x] a,a,\cdots,1,1,c-1 \#\}

**Rule M6.**\{a,b,\underbrace{1,\cdots,1}_{d},c,\#\}=\{\underbrace{a,\cdots,a}_{d+1} ,\{a,b-1,\underbrace{1,\cdots,1}_{d},c,\#\},c-1,\#\}

**Rule M7.**\{a,b,c\#\}=\{a,\{a,b-1,c,\#\},c-1\#\}

この配列は[m]を次元セパレータとして用いている。

## 超次元配列
超次元配列では、括弧が[1,1]のようになる。**Rule M1~M7**は、[m_n]を[m_n \#]
に置き換えること以外は同じで、**Rule A3**は**Rule A5**となり、新しい**Rule A3**と**Rule A4**が追加される。

**Rule A3.**\grave{} a  b \textrm' = \grave{}  b \textrm'(A

**Rule A4.**\grave{} a \langle 0 [A_1] 1 [A_2] \cdots 1 [A_n] c \# \rangle b \textrm' = \grave{} a \langle b \langle A_1-1 \rangle b [A_1] b \langle A_2-1 \rangle b [A_2] \cdots b \langle A_n-1 \rangle b [A_n] c-1 \# \rangle b \textrm'

AnとBは配列で、Ai-1 は Ai の最初の引数から1を引いて、残りは等しい配列である。

### 二つのセパレータの順序付け
**Rule A3**と**Rule M2**はよく似ているため、どのセパレーターがより高いランクなのか決定する必要がある。最初に、配列が何重にネストされたかを表す関数を\mathrm{Lev}(A)と表記する。例えば、A=\{3,3[1[1[2]2]2]2\}とすると、\mathrm{Lev}(A)=3となる。つまり[2]は[1[2]2]にネストされていて、それも[1[1[2]2]2]にネストされている。もう一つの関数、\mathrm{Num}(H,A)を、配列A中のセパレータ[H]の個数と定義する。例えば、A=\{3,3[1[2]1[2]1[2]2]2]2\} なら、 \mathrm{Num}(2,A)=3。

[A]と[B]のどちらが優位なのかを決定する方法は、次のように表現される。

* **Step 1.** [A_1]=[A], [A_2]=[A_1], [B_1]=[B], [B_2]=[B_1]とする。
* **Step 2.**もし\mathrm {Lev} (A)>\mathrm {Lev} (B)なら、[A]>[B]、 \mathrm {Lev} (A)なら、[A]とする。 もし{\displaystyle \mathrm {Lev} (A)=\mathrm {Lev} (B)>0}なら、**Step 3**へ、それ以外は**Step 6**へ。
* **Step 3.**[A*]と[B*]をそれぞれ配列[A_2]と[B_2]の最高位のセパレータとする。 もし{\displaystyle [A*]>\displaystyle [B*]}なら{\displaystyle [A]>\displaystyle [B]}、{\displaystyle [A*]なら{\displaystyle [A]、それ以外は[H]=[A*]=[B*]とし**Step 4**へ。
* **Step 4**.もし\mathrm{Num}(H,A_2)>\mathrm{Num} (H,B_2)なら、[A]>[B]、\mathrm{Num}(H,A_2)なら、[A]、それ以外は**Step 5**へ。
* **Step 5.** 文字列A_2とB_2から、[H]のセパレータとその前の引数を削除する。
* **Step 6.**これまでのルールで、A_2とB_2は[a]と[b](aとbは単一の整数)の形になっているはずである。 もし[a]なら[A]、[a]>[b]なら{\displaystyle [A]>\displaystyle [B]}、 それ以外は**Step 7**へ。
* **Step 7.**A_1とB_1の最後の引数とその前のセパレータをすべて消去する。もしA_1とB_1がどちらも空ならば[A]=[B]、 それ以外は**Step 2**に戻る。

## 超ネスト配列

## ネストされた超ネスト配列

## 出典


## 関連項目
*巨大数
*配列表記
*BEAF
*回転矢印表記 - チェーン表記の拡張で、バードの配列表記以前にクリス・バードが考案したもの。
*バード数 - バードの配列表記を元に定義された巨大数