配列次元演算子とは、配列表記やBEAF[1]で使われる演算子である。
注意[]
BEAFにおいて配列次元演算子を使用するとき、特にテトレーション配列以上を表すとき、配列の展開が未定義である。そのため、そのような記述は数学的に意味を持たない。
使われ方[]
これは二項演算子で、a&bと書かれ、これは\(\{\underbrace{b,b,b,b,\ldots,b,b,b,b}_a\}\)を意味する。これは本来はレギオン配列で使われるものだった。
Jonathan Bowersは、an & bを、一辺の長さaのn次元超立方体配列中のbという事を表すのに使った。これは、n=1の時を除き、べき乗として扱った時と値が異なる。例えば、33 & 3 = ディメントリだが、 27 & 3 = ウルトラトリである。
テトレーション、ペンテーション、…配列を表すために、Bowersは\(a\underbrace{\uparrow\uparrow\ldots\uparrow\uparrow}_x n\) & b や {a,n,x} & bという表記を用いた。aは超立方体の一辺、nは次元、xは超立方体を組み上げるのに用いた演算子を意味する(2ならテトレーション、3ならペンテーション、…)。
これをより高い次元の配列まで広げることで、ゴラプルスやゴラプルスプレックスを定義できる。
配列次元演算子をネストするのも可能である。その場合は、左から右へと計算される。だが、その場合には右側の計算に注意を払わなければならない。たとえば、3 & 3 & 3 = {3, 3, 3} & 3はペンテーション配列だが、(3 & 3) & 3 ={3, 3, ... 3, 3}(3 & 3={3, 3, 3}、トリトリ個の3)となり、前者は後者よりもっと大きい。
変数の数を求めるには、左の項をそのまま解けばいい。例えば、103 & 10中には、103 = 1000個の10がある。
レギオン配列[]
配列次元演算子は10100 & 10のような数を早く書くことに役立つが、これはまたレギオン配列にもまたきわめて重要である。全ての配列のスペースをレギオン空間と呼ぶ。すると、レギオン空間中のプライムブロックの構造はb & b & b ... & b & b(bがp個)の大きさの配列となる。 レギオン空間におけるセパレータを斜線/と定める。そうするとさっきのルールは{b, p / 2} = b & b ... & b & b(bがp個)と書ける。1がデフォルトであり、{A / 1} = {A}である。
また、二つ以上のレギオンを同時に使うことが出来る: {b, p / 1 / 2} = {b & b & ... & b & b / b & b & ... & b & b } これらのレギオンは一列になっているため、レギオンを多次元化することもできる: {b, p (/1) 2} = {b & ... & b / b & ... & b / ...}、p個の配列のコピー。また、 (/1, 2 (1) 3, 4)のようなセパレータを使ってテトレーション、ペンテーション…配列も作ることが出来る。
次のステップは、レギオン配列自身で構造を作る事である。a && b、またはbのレギオン配列a、を{b & ... & b / b & ... & b / ...}(aのレギオン構造の繰り返し)とする。aは、整数でも、べき乗でも、配列でもいい。プライムブロックの「レギオンレギオン」をa && bとする。
よくある間違いが、a && b = b & b ... & b(a個のb)というものだが、これは間違っている。右側と等しいのは、{b, a / 2}で、左側と等しいのは{b & ... & b / b & ... & b / ...}(a個のレギオン構造の繰り返し)である。aが配列の時、このままだと間違いが生じる。例えば、{3, 3, 3} && 3は何になるのか?
もちろん、レギオンレギオンレギオン配列、a &&& bを{b && ... && b // b && ... && b // ...}(aのレギオン構造の繰り返し)とできる。
レギオン記号//...//を一般化した後、次のステップはレギオン記号を多次元化することである。例えば、///(1)///。これを定義するため、Lをレギオン空間とし、{L,n}b, pをレギオンレギオン...(n個)...レギオンで、bとpは基数とプライムである。n=1なら、{L, 1} = {b, p / 2}。n=2なら、{L, 2} = {b, p // 2}、レギオン配列である。これが続く。
nは整数以外でも表記は成立する。n=Xとし、{L, X} = {b, p (1)/ 2}となる。配列の値を求める時、pはXとなるため、これは{b, p //...(p個)...// 2}に等しい。n=X2とし、{L, X2} = {b, p (2)/ 2}となる。nはテトレーション、ペンテーション、…ともなる。そして、nをレギオン空間にも適用し、{L, L} = {L, 2, 2}とする。また、レギオン空間でBEAFを形作るのも可能である。 {L, L, L}, {L, L, L, L}, {L, L (1) 2} ({L, L, ..., L, L}(Lがp個)となる), 10100 & L ... これらをレギオン記号配列と呼ぶ。
また、a @ bもb & La, bとして定義できる。もしbが整数なら、これは線形レギオン記号配列{L, L, ..., L, L}(Lがb個)となる。また、「ルギオン記号配列」L2をb @ b @ ... @ b @ b(bがp個)と定義できる。ルギオン記号配列のセパレータは\である。これを使い、ルギオンルギオンやその続きを作れる。{L2, 2} = {b, p \\ 2}、{L2, 3} = {b, p \\\ 2}、また{L2, L2}, 10100 & L2, L & L2もできる。
さらに、a % b をb & L2a, bと定義できる。これ「ラギオン記号配列」をL3とする。そのセパレータは|で、ラギオン記号配列で作られた「リギオン」空間をa # bとする。また、L5, L6, L7,... やLL, LL2, LL(1)LLL(1)LLL, と続けられる。