I am going to create the notation using plus signs, starting from addition.
The format is a&b, where a and b are non-negative integers (extensions to negative integers and non-integers coming soon), & can be any plus structures.
Base Rule: for & = "+" (& is a singular plus sign) a+b in Extensible plus system = a+b in basic mathematics
Prime Rule: for & != "+" (& is not a singular plus sign), a&1 = a, a&0 = 0, 0&b = 0
Tuple Rule: a+[c]b = a+++...+++b with c copies of "+"s
Recursion Rule: for & != "+" (& is not a singular plus sign), a+&b = a&(a+&(b-1)), for a > 1 and b > 0
If there are two or more distinct rules applicable to one expression, the topmost rule is applied.
Examples:
3+2 = 5
3++3 = 3+(3++2) = 3+3+(3++1) = 3+3+3 = 3*3 = 9
3+++3 = 3++(3+++2) = 3++3++3 = 3*3*3 = 3^3 = 27
3++++3 = 3+++(3++++3) = 3+++3+++3 = 3^3^3 = 3^27 = 7,625,597,484,987
3+[5]3 = 3+++++3 = 3++++3++++3 = 3^^^3 = 3^^3^^3 = 3^^7,625,597,484,987
We can see that a+[c]b is the c-th hyper operator starting from addition, so a++b = a*b, a+++b = a^b, a++++b = a^^b (tetration), a+++++b = a^^^b (pentation), a++++++b = a^^^^b (hexation), and so on.
This level introduces a new rule, called "nesting rule".
# and % can be any entries. All numbers in the array must be natural numbers.
Base Rule: for & = "+" (& is a singular plus sign) a+b in Extensible plus system = a+b in basic mathematics
Prime Rule: for & != "+" (& is not a singular plus sign), a&1 = a, a&0 = 0, 0&b = 0
Tailing rule: a+[%, 1]b = a+[%]b
Diagonalization rule: a+[1, 1, 1, ..., 1, 1, 1, d+1#]b = a+[1, 1, 1, ..., 1, 1, b, d#]b (the first entry is 1)
Tuple Rule: a+[c, d#]b = a+[1, d#]b with c copies of "+"s before [] array (the first entry is not 1)
Array decomposition rule: a+[c, d#]
Recursion Rule: for & != "+" (& is not a singular plus sign), a+&b = a&(a+&(b-1)), for a > 1 and b > 0
If there are two or more distinct rules applicable to one expression, the topmost rule is applied.
Examples:
3+[1, 2]5 = 3+[5, 1]5 = 3+[5]5 = 3+++++5 = 3^^^5
3+[2, 2]3 = 3++[1, 2]3 = 3+[1, 2](3++[1, 2]2) = 3+[1, 2]3+[1, 2](3++[1, 2]1) = 3+[1, 2]3+[1, 2]3 = 3+[1, 2]3+[3, 1]3 = 3+[1, 2]3+[3]3 = 3+[1, 2]3+++3 = 3+[1, 2]27 = 3+[27, 1]27 = 3+[27]27
3+[1, 3, 2]4 = 3+[4, 2, 2]4
3+[1, 1, 1, 3]2 = 3+[1, 1, 2, 2]2 = 3+[1, 2, 1, 2]2 = 3+[2, 1, 1, 2]2 = 3++[1, 1, 1, 2]2 = 3+[1, 1, 1, 2](3++[1, 1, 1, 2]1) = 3+[1, 1, 1, 2]3 = 3+[1, 1, 3, 1]3 = 3+[1, 1, 3]3 = 3+[1, 3, 2]3 = 3+[3, 2, 2]3
This level introduces separators.
# and % can be any entries. A's are separators. % also applies on separators. All numbers in the array (including separators) must be natural numbers.
Base Rule: for & = "+" (& is a singular plus sign) a+b in Extensible plus system = a+b in basic mathematics
Prime Rule: for & != "+" (& is not a singular plus sign), a&1 = a, a&0 = 0, 0&b = 0
Tailing rule: a+[%, 1]b = a+[%]b
Dimensional diagonalization rule (DDR):
Commas are {1} separators.
{2}-separator decomposition rule: a+[1 {2} d+1#]b = a+[1, 1, 1, ..., 1, 1, 2 {2} d#]b with b entries
{k}-separator decomposition rule: a+[1 {k+1, l%} d+1#]b = a+[1 {k, l%} 1 {k, l%} ... {k, l%} 1 {k, l%} 2 {k+1, l%} d#]b with b entries separated by {k, l%}
Hyperdimensional decomposition rule: a+[1 {1, 1, ..., 1 l+1%} d+1#]b = a+[1 {1, 1, ..., b, l%} 2 {1, 1, ..., 1, l+1%} d#]b
Nested decomposition rule: a+[1 {1 A 1 A ... A 1 A l+1%} d+1#]b = a+[1 {1 A 1 A ... A 1 dA l%} 2 {1 A 1 A ... A 1 A l+1%} d+1#]b, where dA stands for the decomposed separator, using the previous DDR rules above.
Linear diagonalization rule: a+[1 A 1 A ... A 1, 1, 1, ..., 1, 1, 1, d+1#]b = a+[1 A 1 A ... A 1, 1, 1, ..., 1, 1, b, d#]b (the first entry is 1)
Tuple Rule: a+[c, d#]b = a+[1, d#]b with c copies of "+"s before [] array (the first entry is not 1)
Array decomposition rule: a+[c, d#]
Recursion Rule: for & != "+" (& is not a singular plus sign), a+&b = a&(a+&(b-1)), for a > 1 and b > 0
If there are two or more distinct rules applicable to one expression, the topmost rule is applied.
Examples:
3+[1 {2} 2]4 = 3+[1, 1, 1, 2]4
3+[1 {3} 1, 2]4 = 3+[1 {3} 4]4 = 3+[1 {3} 1 {3} 1 {3} 2]4
3+[1 {1 {2} 2} 2]4 = 3+[1 {1, 1, 1, 2} 2]4 = 3+[1 {1, 1, 4} 2]4 = 3+[1 {1, 4, 3} 2]4 = 3+[1 {4, 3, 3} 2]4 = 3+[1 {3, 3, 3} 1 {3, 3, 3} 1 {3, 3, 3} 2]4