Multiple dropper-expanding notation (doesn’t work)

Prev: Dropper-expanding notation    Next: Second-order dropper-expanding notation

Note: this version of the notation doesn’t work.

Multiple dropper-expanding notation (mDEN) is the tenth part of my array notation. First I introduce a notation on a higher level plus, then more plus signs make the multiple dropper-expanding notation.

Up to a double plus

Now I introduce a very high-leveled separator – the double plus (++). It appears inside a { ____ +} separator. The least one is {1 ++ 1+} = {1+} = the plus sign. But the second one, {1 ++ 2+} is very strong.

The double plus in {1 ++ 2+} works similar to the plus sign, so the {1 ++ 2+} expands to b nests of droppers. i.e. {1 ++ 2+} becomes (1)(1 ++ 2+)(1 ++ 2+)…(1 ++ 2+){1 ++ 2+} with b-1 (1 ++ 2+)′s.

The first step to reach that is (1){1 ++ 2+} – the 1-separator of { ____ +} separators. Then (2){1 ++ 2+} is the 2-separator of { ____ +} separators, and so on. The (1 + 2){1 ++ 2+} expands to (1)(1 + 2)(1 + 2)…(1 + 2)(1 + 2){1 ++ 2+} with b (1 + 2)′s, where (1)(1 + 2){1 ++ 2+} is the 1-separator of ( ____ ){1 ++ 2+}. Then (1 + 3){1 ++ 2+}, (1 + 1 + 2){1 ++ 2+}, (1 {2+} 2){1 ++ 2+}, (1 {1 + 2+} 2){1 ++ 2+}, (1 {1 {1 + 2+} 2+} 2){1 ++ 2+}, (1 {1 (1){1 ++ 2+} 2+} 2){1 ++ 2+}, (1 {1 (1 {1 (1){1 ++ 2+} 2+} 2){1 ++ 2+} 2+} 2){1 ++ 2+}, (1 (1){1 ++ 2+} 2){1 ++ 2+}, etc. And the limit of (1,2){1 ++ 2+}, (1 (1,2){1 ++ 2+} 2){1 ++ 2+}, (1 (1 (1,2){1 ++ 2+} 2){1 ++ 2+} 2){1 ++ 2+}, etc. is (1 (1)(1 (1+){1 ++ 2+} 2){1 ++ 2+} 2){1 ++ 2+} – but what’s the (1+)?

The (1+) works fully different from (1), but very similar to the plus sign (i.e. {1+}). The {1+} searches out for a separator lower-leveled than it, and it expands to nested droppers. The (1+) also searches out for a dropper or separator lower-leveled than it, and it expands to nested droppers. e.g. (1+){1 ++ 2+} searches out for a ( ____ ){1 ++ 2+}, and the outside (#){1 ++ 2+} expands to (1)(#)(#)…(#){1 ++ 2+} with b (#)′s. The (1)(1 (1+){1 ++ 2+} 2){1 ++ 2+} is the 1-separator of ( ____ ){1 ++ 2+}, the (2)(1 (1+){1 ++ 2+} 2){1 ++ 2+} is the 2-separator of ( ____ ){1 ++ 2+}, and the (1)(1 (1+){1 ++ 2+} n){1 ++ 2+} is the 1-separator of ( ____ (1+){1 ++ 2+} n-1){1 ++ 2+}.

Then (1)(1 ++ 2+){1 ++ 2+} is the 1-separator of ( ____ +){1 ++ 2+}, e.g. the limit of (1,2+){1 ++ 2+},  (1 (1,2+){1 ++ 2+} 2+){1 ++ 2+}, (1 (1 (1,2+){1 ++ 2+} 2+){1 ++ 2+} 2+){1 ++ 2+}, etc. is (1 (1)(1 ++ 2+){1 ++ 2+} 2+){1 ++ 2+}. Finally the limit of (1){1 ++ 2+}, (1)(1 ++ 2+){1 ++ 2+}, (1)(1 ++ 2+)(1 ++ 2+){1 ++ 2+}, etc. is {1 ++ 2+}.

Further, we have {1 ++ 3+}, {1 ++ 1,2+}, {1 ++ 1 + 2+}, {1 ++ 1 {1 ++ 2+} 2+}, {1 ++ 1 ++ 2+}, {1 ++ 1 ++ 1 ++ 2+}, etc. A {1 ++ … 1 ++ 1 ++ n #+} expands to (1)(1 ++ … 1 ++ 1 ++ n #+)(1 ++ … 1 ++ 1 ++ n #+)……(1 ++ … 1 ++ 1 ++ n #+){1 ++ … 1 ++ 1 ++ n #+}, and the D function results {1 ++ … 1 ++ 1 ++ n-1 #+}.

More plus signs

Let {1++} = ++ and we have {2++}, {1 ++ 2++}, {1 {1 ++ 2++} 2++}, etc. Note that { ____ ++} separators have higher level than { ____ +} separators, and { ____ +} separators have higher level than { ____ } separators.

Next, the triple plus comes. The {1 +++ … 1 +++ 1 +++ n #++} expands to (1)(1 +++ … 1 +++ 1 +++ n #++)(1 +++ … 1 +++ 1 +++ n #++)……(1 +++ … 1 +++ 1 +++ n #++){1 +++ … 1 +++ 1 +++ n #++} with b-1 (1 +++ … 1 +++ 1 +++ n #++)′s, and D function of it results {1 +++ … 1 +++ 1 +++ n-1 #++}. To get it, we must meet (1++), and it just works the same as the double plus. e.g. (1 (1++){1 +++ 2++} n+){1 +++ 2++} expands to (1)(1 (1++){1 +++ 2++} n+)(1 (1++){1 +++ 2++} n+)……(1 (1++){1 +++ 2++} n+){1 +++ 2++} with b (1 (1++){1 +++ 2++} n+)′s, and D function of it results (1 (1++){1 +++ 2++} n-1+){1 +++ 2++}.

Continue upward, the (1+++) works similar to {1+++} = the triple plus, and the ++++ inside { ____ +++} expands to nested droppers.

Now we define plus value. Separators or droppers without any plus signs at the left-superscript position of rbrace have plus value 0, separators or droppers with m plus signs at the left-superscript position of rbrace have plus value m.

So a m-ple plus is the least separator with plus value m, and it searches out for a separator with plus value = m-1. Using D function we can simplify it as D(++…++) = ++…+ with one less plus signs. Also (1++…++)A with m plus signs searches out and D((1++…++)A) = (1++…+)A with one less plus signs.

And a separator with higher plus value always have higher level.

Process

Note that case B1, B2, B3, B5 and B6 are terminal but case A and B4 are not. b, n, K, M and Bt′s are parts of the original array but t, i, Si, At′s, P and Q are not. Before we start, let A0 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
      1. Change the “1,n” into “b,n-1” where n is this non-1 entry and the b is the iterator.
      2. Change all the entries at base layer before them into the base.
      3. The process ends.
    • Case B2: If a separator (1)M (where M is the remaining sections) is immediately before you, then
      1. Let t be such that the (1)M is are layer t. And let B0 be the whole array now.
      2. Repeat this:
        1. Subtract t by 1.
        2. Let separator Bt be such that it’s at layer t, and the (1)M is inside it.
        3. If t = 1, then break the repeating, or else continue repeating.
      3. Find the maximum of t such that lv(At) < lv((1)M).
      4. If lv(At) < lv(D(M)), then
        1. Find the minimum of v such that v > t and lv(Av) < lv(U(M)).
        2. Let string P and Q be such that Bt = “P Bv Q”.
        3. Change Bt into “P X(M) Av Y(M) Q”.
        4. The process ends.
      5. If lv(At) ≥ lv(D(M)), then
        1. Let string P and Q be such that Bt = “P (1)M n Q”.
        2. Change Bt into Sb, where b is the iterator, S1 is comma, and Si+1 = “P Si 2 (1)M n-1 Q”.
        3. The process ends.
    • Case B3: If a separator K, which is the ++…+ or the (1++…+)M, is immediately before you, then
      1. Let t be such that the K is are layer t. And let B0 be the whole array now.
      2. Repeat this:
        1. Subtract t by 1.
        2. Let separator Bt be such that it’s at layer t, and the plus sign is inside it.
        3. If t = 1, then break the repeating, or else continue repeating.
      3. Find the maximum of t such that lv(At) < lv(K).
      4. If lv(At) < lv(D(K)), then
        1. Let string P and Q be such that Bt = “P Bt+1 Q”.
        2. Change Bt into “P X(K) Av Y(K) Q”.
        3. The process ends.
      5. If lv(At) ≥ lv(D(K)), then
        1. Let string P be such that At = {P} or At = (P)#, where # is the remaining sections.
        2. Change Bt into “SbAt“, where b is the iterator, S1 = “(1)”, and Si+1 = “Si(P)”.
        3. The process ends.
    • Case B4: If a separator K is immediately before you, and it doesn’t fit case B1, B2 or B3, then
      1. Change the “K n” into “K 2 K n-1”.
      2. Set separator At = K, here K is at layer t.
      3. Jump to the first entry of the former K.
    • Case B5: If an lbrace is immediately before you, then
      1. Change separator {n #} into string Sb, where b is the iterator, S1 = “{n-1 #}” and Si+1 = “Si 1 {n-1 #}”.
      2. The process ends.
    • Case B6: If a “(” is immediately before you, then
      1. Let t be such that the separator (n #)M is are layer t, here (n #) is the first section and M is the remaining sections. And let B0 be the whole array now.
      2. Repeat this:
        1. Subtract t by 1.
        2. Let separator Bt be such that it’s at layer t, and the (n #)M is inside it.
        3. If t = 1, then break the repeating, or else continue repeating.
      3. Find the maximum of t such that lv(At) < lv((n #)M).
      4. If lv(At) < lv(D(M)), then
        1. Find the minimum of v such that v > t and lv(Av) < lv(U(M)).
        2. Let string P and Q be such that Bt = “P Bv Q”.
        3. Change Bt into “P X(M) Av Y(M) Q”.
        4. The process ends.
      5. If lv(At) ≥ lv(D(M)), then
        1. Change Bt into “(n-1 #)At“.
        2. The process ends.

Subfunctions

If separator A = ++…++ (the m-ple plus), then D(A) = {1++…+} (with m-1 plus signs), X(A) = “{1” and Y(A) = “2++…+}” (with m-1 plus signs).

If separator A = (1++…++)M (with m plus signs), then D(A) = (1++…+)M (with m-1 plus signs), X(A) = “(1” and Y(A) = “2++…+)M” (with m-1 plus signs).

For other separator A, U(A), D(A), X(A) and Y(A) are determined as follows. Start the subprocess shown below. Process start from the first entry of A. Note that case B1 and B3 give definitions but case A and B2 don’t.

  • 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 a separator K, which is the ++…+ or the (1++…+)M, is immediately before you, then
      1. Let string P and Q be such that A = “P K n Q”.
      2. Define U(A) = K, D(A) = “P K n-1 Q”, X(A) = “P” and Y(A) = “2 K n-1 Q”.
    • Case B2: If a separator K which doesn’t fit case B1 is immediately before you, then
      1. Change the “K n” into “K 2 K n-1”.
      2. Jump to the first entry of the former K.
    • Case B3: If the “(” is immediately before you, then
      1. Let string P and Q be such that A = “P (n #)M 2 Q”, where (n #)M is the separator.
      2. Define U(A) = “(n #)M”, D(A) = “P Q”, X(A) = “P” and Y(A) = “2 Q”.

Explanation

The change of case B3 in the process make mDEN strong.

In step 4 of case B3, we don’t use U(++…+), so we also don’t define U(++…+). But actually U(++…+) exists, which has a very high level, and it comes in the next part.

One thought on “Multiple dropper-expanding notation (doesn’t work)

  1. Aarex Tiaokhiao says:

    But in the weak DEN notation (DDN):
    A+ is the droppers for multiple colons over A.
    Droppers for +++… are (N^+).

    Like

.