**Prev**: Primary dropping array notation **Next**: Dropping array notation

Secondary dropping array notation (sDAN) is the sixth part of my array notation. In this part, first I introduce some 1-separators on the double comma, then 2-separators on 2-separators, finally the 3-separator.

# More 2-separators

Let `,, (a combined separator, a grave accent followed by double comma) be the 1-separator of { ____ ^{,,}}. We say the `,, is the 1-separator on the double comma. How it works in { ____ ^{,,}} is similar to how the grave accent works in separators with lower level than the grave accent.

Then the `,, is a shorthand for {1^{`,,}}. We can also have {2^{`,,}}, {1,,2^{`,,}}, {1`,,2^{`,,}}, {1{1`,,2^{`,,}}2^{`,,}}, etc.

Let ` `,, be the 1-separator of { ____ ^{`,,}}, and it’s a shorthand for {1^{` `,,}}. Let ` ` `,, be the 1-separator of { ____ ^{` `,,}}, and it’s a shorthand for {1^{` ` `,,}}. And so on. How they works are similar to how the multiple grave accents work in EAN.

Let ,,` (a combined separator, a comma followed by a grave accent) be the next 2-separator – it’s the 2-separator on the double comma. How it works in { ____ ^{,,}} is similar to how the double comma works in separators with lower level than the double comma. The `,, is a shorthand for {1 ,,` 2^{,,}}, the ` `,, is a shorthand for {1 ,,` 3^{,,}}, and the ` ` `,, is a shorthand for {1 ,,` 4^{,,}}.

We can even define arrays on the ,,` – it’s { ____ ^{,,`}}, and 1-separators on ,,`. Then we can define the next 2-separator – it’s the 2-separator on the ,,` – it’s ,,` ` with a comma and 2 grave accents.

To simplify it, we use another notation: {A^{,,`}} is written as {A^{,,2}}, and {A^{,,` `}} is written as {A^{,,3}} now. And the {A^{,,1}} = {A^{,,}}.

Then we define *CA-value* (means “comma and grave accents”) for separators. Separators without comma at the left-superscript position of the rbrace have CA-value 0, and {A^{,,m}} has CA-value m. Note that the double comma is the least separator with CA-value = 1. A separator with higher CA-value has higher level than a separator with lower CA-value. If two separators have the same CA-value, then their level comparison is done in usual way.

## Process

Note that case B1, B2 and B4 are terminal but case A and B3 are not. And note that b, n, m, M, B_{t} and K are parts of the original array but t, u, v, i, S_{i}, A_{t}, 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 M = {1
^{,,m}} is immediately before you, then- Let t be such that the M is at layer t. And let separator A
_{t}= B_{t}= M, and 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 such that lv(A
_{u}) < lv(M). - If A
_{u}has CA-value < m-1, then- Let string P and Q be such that B
_{u}= “P B_{u+1}Q”. - Change B
_{u}into “P {1 A_{u+1}2^{,,m-1}} Q”. - The process ends.

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

- Find the minimum of v such that v > t and lv(A
- If lv(A
_{t}) ≥ lv(“X M n-1 Y”), then- Let string P and Q be such that B
_{t}= “P B_{u}Q”. - Change B
_{t}into S_{b}, where b is the iterator, S_{1}is comma, and S_{i+1}= “P S_{i}Q”. - The process ends.

- Let string P and Q be such that B

- Let t be such that the M is at layer t. And let separator A
- 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

## Explanation

Look at case B2. Step 3 and 4 look familiar – in fact, the step 3 comes from the searching-out step in mEAN, and the step 4 comes from the adding rule in mEAN. M is a 2-separator, and by these 2 step, we get a 1-separator A_{u}. We say that a 2-separator M drops down to a 1-separator A_{u}.

Case B2 is terminal, and what’s more, there’re 3 exits of it – step 4, 7 and 8.

# Up to a 3-separator

Let the triple comma (,,,) be a 3-separator – it’s a very high leveled separator. {1,,,1} is comma and {A,,,1} = {A} by rule 2b, {1,,,2} is the double comma, {A,,,2} = {A^{,,}}, {A,,,3} = {A^{,,2}}, {A,,,4} = {A^{,,3}}, and so on. So {1,,,m}′s are the 2-separators above, with CA-value m-1.

And we have more 2-separators such as {1,,,1,,,2}, {1,,,1,,,3}, {1,,,1,,,1,,,2}, etc. If we meet a triple comma in the process, first find the separator that the triple comma is inside – that’s a 2-separator. Then the 2-separator drops down to a 1-separator. Then the 1-separator drops down and then expands.

## Process

Note that case B1, B2 and B4 are terminal but case A and B3 are not. And note that b, n, B_{t} and K are parts of the original array but d, t, u, v, i, S_{i}, A_{t}, 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 triple comma is immediately before you, then
- Let d and t be such that the triple comma is at layer d = 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 such that lv(A
_{u}) < lv(A_{d-1}). - Let string X and Y be such that B
_{d-1}= “X ,,, n Y”. - If lv(A
_{u}) < lv(“X ,,, n-1 Y”), then- Let string P and Q be such that B
_{u}= “P B_{u+1}Q”. - Change B
_{u}into “P X A_{u+1}2 ,,, n-1 Y Q”. - The process ends.

- Let string P and Q be such that B
- Find the maximum of t such that lv(A
_{t}) < lv(A_{u}). - Let string X and Y be such that B
_{u}= “X B_{d-1}2 Y”. - If lv(A
_{t}) < lv(“X Y”), then- Find the minimum of v such that v > t and lv(A
_{v}) < lv(A_{d-1}). - Let string P and Q be such that B
_{t}= “P B_{v}Q”. - Change B
_{t}into “P X A_{v}2 Y Q”. - The process ends.

- Find the minimum of v such that v > t and lv(A
- If lv(A
_{t}) ≥ lv(“X Y”), then- Let string P and Q be such that B
_{t}= “P B_{u}Q”. - Change B
_{t}into S_{b}, where b is the iterator, S_{1}is comma, and S_{i+1}= “P S_{i}Q”. - The process ends.

- Let string P and Q be such that B

- Let d and t be such that the triple comma is at layer d = t. 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

First, all arrays have the lowest and the same level. Then, the triple comma has the highest level. And note that the same separators have the same level. To compare levels of other separators A and B, we follow these steps.

- 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

Note that A_{d-1} and B_{d-1} are the same separator.

The triple comma is the 3-separator. To get a 2-separator is simple, just look 1 layer out, it’s A_{d-1}. To get a 1-separator we need to follow step 3 ~ 5 in case B2, so the 2-separator A_{d-1} drops down to A_{u}. To get what the 1-separator needs to expand (0-separator) we need to follow step 6 ~ 8 in case B2, so the 1-separator A_{u} drops down to A_{t}. And the step 9 is the expansion. That’s why this notation is called dropping array notation.

Step 5 in Case B2 is wrong. It should changes with triple comma not double comma in B part.

LikeLike

Fixed now.

LikeLike

sDAN is stronger I thought. Further parts and this part will be reanalyzed by me.

Let ,, = {1,,,2} will be 2-separator of 1{_}2.

,,’ = {1,,,3} will be 2-separator of 1{_^,,}2 = 1{_,,,2}2

,,” = {1,,,4} will be 2-separator of 1{_^,,’}2 = 1{_,,,3}2

Then {1,,,1,,,2} will be 2-separator of 1{1,,,_}2

LikeLike

Hypcos how would you describe Sbiis Saibian’s number Blasphemorgulus (E100{#,#,1,2}100) with your Strong Array Notation?

LikeLike

That is about (I think) {100,100{1{1`3^`}2}2) in EAN.

LikeLike

Cool.

LikeLike

What combined separator are 2-separator of 2-separator and 2-separator of 3-separator?

LikeLike

The least 2-separator of 2-separator is {1,,,3} (or ,,`).

The least 2-separator of 3-separator is {1{1,,,,3}2,,,,2}, which is beyond the range of this part.

LikeLike

I think it will be the limit of psi(e(K+1)).

LikeLike