User blog comment:Mh314159/A hopefully powerful new system/@comment-35470197-20190628050713/@comment-35470197-20190629032448

It is my pleasure. In order to clarify, I will write the term rewriting as \(f\) and the resulting evaluation as \(e\). Then you meant \begin{eqnarray*} f([2]\[5][8]) & \neq & f([2]\f([4]^{e([5][7])}[8])) \\ f([2]\[5][8]) & = & f([2]\f([4]^{e([2]\[5][7])}[8])), \end{eqnarray*} right? If it is correct, then you are referring to a supscript as an expression itself but not to the power. In order to distinguish a supscript regarded as an expression and the power, you need to employ other rule sets like \begin{eqnarray*} f([a]^{1}[c]) & = & [a][c] \\ f([a]^{b+1}[c]) & = & [a][e([a]^b[c])] \\ f([a]^{x}[c]) & = & [a]^{f(x)}[c] \\ f([0]\[b]) & = & [b] \\ f([0]\[x]) & = & [x] \\ f([p+1}\[a]^{b}[c]) & = & [p+1]\f([a][c]) \\ f([p+1}\[a]^{x}[c]) & = & [p+1]\[a]^{[p+1]\f(x)}[c] \end{eqnarray*} where \(a\), \(b\), and \(p\) are numbers and \(x\) is a valid expression which is not a number. Since you are abbreviating term rewritings as equialities, given strings \(x\) can express the exact expression \(x\) itself and the result \(e(x)\).

If you do not want to put a function symbol to express the term rewriting process, then it is ok. But mathematical formulae generally have tree structures of syntax due to the partial ordering of the priority of computation, and hence you need to be careful when you explain it in natural language, which does not admit such a syntax structure.