**Prev**: Secondary dropping array notation **Next**: Nested dropper array notation

Dropping array notation (DAN) is the seventh part of my array notation.

Let’s have an overview of EAN, pDAN and sDAN. In EAN, the grave accent works as the least 1-separator, and it drops down once until the expansion. In pDAN, the double comma works as the least 2-separator, and it drops down twice until the expansion. In sDAN, the triple comma works as the least 3-separator, and it drops down 3 times until the expansion.

Continue upward, we have the least 4-separator – the quadruple comma (,,,,), the least 5-separator – the quintuple comma (,,,,,), and so on. Generally, an m-separator drops down m times until the expansion. Here comes the definition of dropping array notation.

# Definition

Syntax:

- s(a,b) is an array where a and b are positive integers.
- s(#Am) is an array, where m is a positive integer, A is a separator, and # is a string such that s(#) is an array.

Definition of separators:

- The m-ple comma (,,…,) with m ≥ 2 are separators. (basic separators)
- {m} is a separator, where m is a positive integer.
- {#Am} is a separator, where m is a positive integer, A is a separator, and # is a string such that {#} is a separator.

Note:

- The comma (,) is a shorthand for {1}.
- The dot . = {1{1,,2}2}, the grave accent ` = {1,,2}, the double comma ,, = {1,,,2}, the triple comma ,,, = {1,,,,2}, and so on, the m-ple comma ,,…, = {1,,…,,2} with an (m+1)-ple comma inside.

## Rules and process

- Rule 1: (base rule – only 2 entries) s(a,b) = a^b
- Rule 2: (tailing rule – the last entry is 1) s(# A 1) = s(#) and {# A 1} = {#}
- Rule 3: (recursion rule – neither the 2nd nor 3rd entry is 1) s(a,b,c #) = s(a, s(a,b-1,c #) ,c-1 #)

where # is a string of entries and separators, it can also be empty. A is a separator.

If none of the 3 rules above applies, start the process shown below. Note that case B1, B2 and B4 are terminal but case A and B3 are not. b, n, m, M, B_{u}′s and K are parts of the original array but j, t, u(j), v(j), i, S_{i}, A_{u}′s, X, Y, P and Q are not. Before we start, let A_{0} be the whole array. First start from the 3rd entry.

- Case A: If the entry is 1, then you jump to the next entry.
- Case B: If the entry n is not 1, look to your left:
- Case B1: If the comma is immediately before you, then
- Change the “1,n” into “b,n-1” where n is this non-1 entry and the b is the iterator.
- Change all the entries at base layer before them into the base.
- The process ends.

- Case B2: If the m-ple comma (m ≥ 2) M is immediately before you, then
- Change “M n” into “M 2 M n-1”, and let B
_{u(m+1)}be the former M. - Let t be such that the M is at layer t. And let B
_{0}be the whole array now. - Repeat this:
- Subtract t by 1.
- Let separator B
_{t}be such that it’s at layer t, and the M is inside it. - If t = 1, then break the repeating, or else continue repeating.

- Find the maximum of u(m) such that lv(A
_{u(m)}) < lv(M). - If lv(A
_{u(m)}) < lv(,), then- Let string P and Q be such that B
_{u(m)}= “P B_{u(m)+1}Q”. - Change B
_{u(m)}into “P {1 A_{u(m)+1}2} Q”. - The process ends.

- Let string P and Q be such that B
- Set j = m. Set A
_{u(m+1)}= M. - Repeat this:
- Subtract j by 1.
- Find the maximum of u(j) such that lv(A
_{u(j)}) < lv(A_{u(j+1)}). - Let string X and Y be such that B
_{u(j+1)}= “X B_{u(j+2)}2 Y”. - If lv(A
_{u(j)}) < lv(“X A_{u(j+1)}2 Y”), then- Find the minimum of v(j) such that v(j) > u(j) and lv(A
_{v(j)}) < lv(A_{u(j+2)}). - Let string P and Q be such that B
_{u(j)}= “P B_{v(j)}Q”. - Change B
_{u(j)}into “P X A_{v(j)}2 Y Q”. - The process ends.

- Find the minimum of v(j) such that v(j) > u(j) and lv(A
- If j = 1, then break the repeating, or else continue repeating.

- Let string P and Q be such that B
_{u(1)}= “P B_{u(2)}Q”. - Change B
_{u(1)}into S_{b}, where b is the iterator, S_{1}is comma, and S_{i+1}= “P S_{i}Q”. - The process ends.

- Change “M n” into “M 2 M n-1”, and let B
- Case B3: If a separator K is immediately before you, and it doesn’t fit case B1 or B2, then
- Change the “K n” into “K 2 K n-1”.
- Set separator A
_{t}= K, here K is at layer t. - Jump to the first entry of the former K.

- Case B4: If an lbrace is immediately before you, then
- Change separator {n #} into string S
_{b}, where b is the iterator, S_{1}= “{n-1 #}” and S_{i+1}= “S_{i}1 {n-1 #}”. - The process ends.

- Change separator {n #} into string S

- Case B1: If the comma is immediately before you, then

## Level comparison

All arrays have the lowest and the same level. And note that the same separators have the same level. To compare levels of other separators A and B, we follow these steps.

First some preparation.

- Find the maximum of m that there’re some m-ple commas in the expressions of A or B.
- Convert all the multiple comma of A and B into expressions of m-ple comma, using ,,…, (i commas) = {1,,…,,2} (i+1 commas)

Then the m-ple comma has the highest level, and other separators have level lower than it.

- Apply rule 2 to A and B until rule 2 cannot apply any more.
- Let A = {a
_{1}A_{1}a_{2}A_{2}…a_{k-1}A_{k-1}a_{k}} and B = {b_{1}B_{1}b_{2}B_{2}…b_{l-1}B_{l-1}b_{l}} - If k = 1 and l > 1, then lv(A) < lv(B); if k > 1 and l = 1, then lv(A) > lv(B); if k = l = 1, follow step 4; if k > 1 and l > 1, follow step 5 ~ 10
- If a
_{1}< b_{1}, then lv(A) < lv(B); if a_{1}> b_{1}, then lv(A) > lv(B); if a_{1}= b_{1}, then lv(A) = lv(B) - Let , and .
- If lv(A
_{maxM(A)}) < lv(B_{maxM(B)}), then lv(A) < lv(B); if lv(A_{maxM(A)}) > lv(B_{maxM(B)}), then lv(A) > lv(B); or else – - If |M(A)| < |M(B)|, then lv(A) < lv(B); if |M(A)| > |M(B)|, then lv(A) > lv(B); or else –
- Let A = {#
_{1}A_{maxM(A)}#_{2}} and B = {#_{3}B_{maxM(B)}#_{4}} - If lv({#
_{2}}) < lv({#_{4}}), then lv(A) < lv(B); if lv({#_{2}}) > lv({#_{4}}), then lv(A) > lv(B); or else – - If lv({#
_{1}}) < lv({#_{3}}), then lv(A) < lv(B); if lv({#_{1}}) > lv({#_{3}}), then lv(A) > lv(B); if lv({#_{1}}) = lv({#_{3}}), then lv(A) = lv(B)

# Explanation

The A_{t} in case B3 and the B_{t} in step 1 ~ 3 of case B2 are preparation. Step 4 and 5 are where the m-ple comma (the least m-separator) drops down to an (m-1)-separator. Step 7 is where the (m-1)-separator drops down m-1 times, to a 0-separator, and step 6 is a preparation for it. And step 8 ~ 10 are the expansion. Here, the A_{u(m+1)} = M is an m-separator, and the A_{u(j)} is a (j-1)-separator.

The step 5 and step 7d are where the adding rules apply. Once an adding rule apply, the expansion doesn’t apply; only when all the adding rules don’t apply, the expansion applies.

The level comparison rules also change. The preparation step change A and B into such that the m-ple comma is the only “basic separator”.

,, corresponds to M.

,,, corresponds to K.

,,,, corresponds to Pi^1_2.

So the limit ordinal is psi(Pi^1_w).

LikeLike