User blog:Ikosarakt1/Extending xE^ to expandal-array level.

For me arises a natural question: how far xE^ (Extended Cascading-E notation) can be extended naturally. I found that it is possible to reach expandal-array level (\(\{X,X,1,2\}\) structure in BEAF) with my new notation.

Firstly, I believe that using up-arrows in xE^ somewhat unnatural, because they are derived from other notation: there are inconvenient mix. I decided to use hyperion marks instead of up-arrows, so, say E100#^^^^#100 should be written as E100#(####)#100. It allows to use hyperion-arrays inside parentheses such as E100#(#(#)#)#100 = E100#(###...###)#100 (100 #'s inside 's). However, expressions become somewhat complicated to read, so I will sometimes use up-arrow notation when we discussed structures below \(\{X,X,X\}\).

There is a big question: how to reach even #^^## structure from #^^#? Well, how we reached #^## from #^#? We just took #^## = (#^#)^# = (#^#)*(#^#)...(#^#)*(#^#). We can do the same with #^^## and #^^#. So, #^^## = (#^^#)^^# = (#^^#)^(#^^#)...(#^^#)^(#^^#). By the way, this nice extension was recommended by Deedlit, thanks to him.

We can also define #^^^## = (#^^^#)^^^#, #^^^^## = (#^^^^#)^^^^#, and so on. The general rule is shown below:

\(@_2(\#(@_1)@_3*\#)@_2 = @_2((\#(@_1)@_3)(@_1)\#)@_2\) (if \(@_3\) isn't blank)

Here \(@_1\) indicates structure inside parentheses, it can be *, #, ##, #(#)#, #(##)#, and so on.

\(@_2\) indicates nested layers below structure which rule handles.

\(@_3\) indicates the rest of the hyper-product.

Also we need to have decomposing rule that handles equivalences like #^^# = #^#^#...#^#^#, #^^^# = #^^#^^#...#^^#^^#, #^^^^# = #^^^#^^^#...#^^^#^^^#, etc.

This should be applied iff there exist hyper-product at the current nested layer, otherwise we go the layer above. For example, in expression E100#(####)#100 we have the hyper-product at the first nested layer, but E100#(#^#)#100 we should concentrate at #^# and expand it as ###...###.

Two additional rules are:

\(@_2(\#(@_1*#)\#)@_2 = @_2(\#(@_1)\#(@_1)\#(@_1)\#\cdots\#(@_1)\#(@_1)\#(@_1)\#)@_2\) (if there exist the hyper-product in the parentheses)

Otherwise, go up to the next nested layer and take \(@_1 = @_2(\#(@_1)\#)@_2\).

To be continued, also probably I will give names for numbers in my notation.