"Number is the exponent of an operation" (Wittgenstein, Tractatus 6.021).
"Everything that can be discovered by means of an operation must exist independently of this operation" (Bertrand Russell).
Higher Order Operations
Definición
Higher-order operations are operations performed by successive or recursive application of a dyadic (two-argument) operator.
If we have an expression of the type x⊥y being x and y two arguments of the dyadic operator ⊥, the need arises for a notation that simplifies the specification of expressions of the forms
x⊥(x⊥(x⊥(...(x⊥x))))
((((x⊥x)...)⊥x)⊥x)⊥x
i.e., the specification of expressions with a single argument x repeated n times and with associativity to the right and to the left, respectively. The occurrences of x must be 3 or more.
In MENTAL they can be represented as follows:
Expression
Associativity
Specification
x⊥(x⊥(x⊥…(x⊥x))))
Right
((x★n)⊢⊥)∼
((((x⊥x)…)⊥x)⊥x)⊥x
Left
∼(⊥⊣(x★n))
In the expression ∼(⊥⊣(x★n)) you can dispense with ∼, since the default aociativity is left-handed.
But this notation, despite simplifying things, is not sufficient. If ⊥ is, for example, the power operator ^, we want to be able to specify powers of powers (powers of order 2), powers of powers of powers of powers (powers of order 3), and so on. In general, powers of order n.
In MENTAL we will use the following notation for higher level powers:
Expression
Semantics
x^n
xn
x(^^)n
x^x^x…x^x (n términos x)
x(^^^)n
x(^^)x(^^)x…x(^^)x (n términos x)
...
...
This notation is similar to those used by other authors in the so-called "superpowering" [see Addendum].
By default, the associativity is leftward, i.e., the evaluation of the expression is performed from left to right. If we wanted associativity to the right, we would have to indicate the operator ∼ to the right of the expression, for example, (x(^^^)n)∼.
In general, for any operator ⊥:
x(⊥★m)n = (⊥★(m−1))⊣(x★n)
And so we have the following formal definition (in the form of a recursive generic expression) of the dyadic hyperoperator ⊥:
where 4 parameters appear, including the dyadic operator (in bold).
By default, it assumes left associativity. If we wanted associativity to the right, we would have to indicate the operator ∼ to the right of the expression. And the parameterized generic expression would be the following:
(x (^^)' y) is the hyperroot of order 2 of x in base y, that is, an expression z such that z(^^)y = x
(x '(^^) y ) is the hyperlogarithm of order 2 of x in base y, that is, an expression z such that y(^^)z = x
In general,
(x (^★n)' y) is the hyperroot of order n of x in base y
(x '(^★n) y) is the hyperlogarithm of order n of x in base y
Infinite hyperoperations
They are those that are repeated indefinitely. They can be expressed as follows
(⊥★n)⊣(x★)
For the case of power and n=1, we have infinite hyperpowers:
^⊣( x↔ ) eq. ((x^x)^x)^...
which assumes associativity on the left, which is the same as associativity on the right.
Addendum
Superpotentiation
Superpotentiation is a term used to express higher order numerical powers. There is no standard notation. The most commonly used notations are the following:
Knuth's notation
In 1972, Donald Knuth invented the "arrow" notation (↑) to represent higher order powers:
The second expression is variously called: tower of powers, superpower, hyperpower, super exponentiation, super exponentiation and tetration (which refers to the fourth arithmetic operation, after addition, multiplication and exponentiation).
In all cases, right-handed associativity is assumed, i.e., evaluation takes place from right to left. For example,
Knuth's notation has the drawback that it requires specifying the arrows repetitively. Therefore, John Conway introduced a notation with horizontal arrows of three arguments, the last one being the number of arrows:
m→n→p ≡ m↑...↑n (p arrows).
For example,
3→4→6 ≡ 3↑↑↑↑↑↑↑↑4 (6 arrows).
Knuth later changed his notation to m↑pn, which was equivalent to Conway's notation, where p (as superscript) indicates the number of arrows: m→n→p ≡ m↑pn
The "hyper" notation
This notation is based on the generalization of the following recursive definitions:
a+b = 1 + (a+(b−1))
a*b = a + (a*(b−1))
a^b = a * (a^(b−1))
The above notations (Knuth, Conway, hyper) have a close relationship with the Ackermann function. It is a recursive function, defined in 1928 by Wilhelm Ackermann, and is widely used in the theory of computation. It is defined (recursively) as follows: