A Continuous Extension of the Hyper4 Operator

(This article is a light introduction. For more austere results, consult Manuscript #2).

We repeat here the main problem for completeness, so that the reader has the main objective in mind.

Main Problem[1]

If F(x,n) = xxx... iterated n-1 times, is there a definition of a continuous function identical to F, not limited to integral values of n, and valid for larger values of x (Greg Kavalec in sci.math)?.


The problem has been known under the name continuous extension of the hyper4 operator, continuous extension of the Ackermann function, continuous extension of the hyperexponentiation functions, and under various different names.

The main difficulty of the problem lies with the non-associativity of hyperexponents. The problem of non-associativity of hyperexponents has been investigated thoroughly, in the references section, with those articles that deal with the equation xy = yx.

Readers interested in several preliminary results, should consult the references and article 3, which introduces the notion of the hyperroot/tetraroot, with an appropriate analysis and corresponding code to find those roots using Lambert's W function.

The main problem showing up after one has defined 1/nm to be the n-th order hyperroot of the real number x, is that there are two "natural" ways to define m/nx, either as m(1/nx) or 1/n(mx). If there is to be any hope of consistency, those two definitions should produce identical results.

Unfortunately, it is easy to see that the above definitions give in general different results, unless m=n. Therefore, such a path that hopes to define rx for rational r, is naturally doomed to failure[2].

Additional hints that doom this path can be easily gotten when one considers m/nx and m'/n'x, with m/n = m'/n'. There are problems there too, although in some of the references suggestions are given for possible definitions similar to limk->+∞(km/(kn))x.

In this presentation we examine an alternate construction, which does not suffer from an inconsistency definition-wise and the final function acquired via the definition has the property that it preserves continuously the behavior of all the "known" hyperexponentials nx for natural n.

Recall our general exponential function again, for completeness here, f(z,w,n) = {zw, iff n=1, zf(z,w,n-1) iff n>1} (1)

We will use the f above, slightly modified to aid us in the extension. Let's then define our new F as follows:

F(z,w,n) = {zw, iff n in {0,1}, zF(z,w,n-1) iff n>1} (2)

Let [x] = Integer Part Of x. Define for rational r > 0:

rx={F(x, r, 0)=xr iff [r] = 0, F(x, xr-[r], [r]) iff [r] > 0}

We need the following lemma to make the extension:


If {rk}, k in N, is a Cauchy sequence of rationals with limk->+∞rk = y in R+-N, {[rk]} is also a Cauchy sequence of rationals with limk->+∞[rk] = [y].


Given any ε, there is a k0 in N, such that for all k > k0: |rk - y| < ε. In particular pick a k0, that guarantees, for all k > k0: |rk - y| < ε = min{|y - [y]|, |[y] + 1 - y|}. It is clear then that for all k > k0: [rk] = [y], therefore, |[rk] - [y]| = 0 < ε and the result follows.

The reader may wonder here why the author excluded the naturals from the above Lemma. If {rk} is any Cauchy sequence converging to n, the Lemma may fail, because if we approach n from the left via a Cauchy sequence of rationals {rk}, such that rk < n, for all k: |[rk]-n| = |n-1-n| = 1 > ε for all k. So one should be careful to pick a Cauchy sequence that approaches n from the right. Note however that in this case a Deus ex Machina saves us: n is in Q, and we are covered by the definition for rational r = n.


If {rk}, k in N, is a Cauchy sequence of rationals with limk->+∞rk = y in R+-N, {rk - [rk]}, k in N, is also a Cauchy sequence of rationals with limk->+∞(rk - [rk]) = y - [y].


The sum of two fundamental sequences is again fundamental.

We can now naturally extend the definition unambiguously. Let {rk}, k in N, be a Cauchy sequence of rational numbers, with y = limk->+∞rk, y > 0, y in R+.

yx = {limk->+∞F(x, rk, 0) = limk->+∞xrk iff [y] = 0, limk->+∞F(x, xrk-[rk], [rk]) iff [y] > 0}[3].

Will these work? We hope so. Let's see why.


The function xy is continuous for all x > 0 for fixed y > 0.

Lemma #1:

Given y > 0, F(y, x, n) is continuous for all x >= 0, n > 0, n in N.


By induction on n. yx = F(y, x, 1) = elog(y)*x is continuous for all x >= 0. But F(y, x, k+1) = yF(y, x, k), the last being continuous as the composition of yx, which is continuous from the n=1 step and F(y, x, k) which is continuous by the inductive step.

Some Observations:

Fixing y > 0, it is clear that if x is away from integral values (i.e. if x is in R+-N), we don't have a problem, since there, x - [x] is continuous, therefore small changes in x will intuitively result in small changes for xy, no matter how high the tower is.

The only "suspicious" points where continuity may actually fail, are the natural numbers (because x - [x] is discontinuous there). The natural numbers are in fact, the points of transition, where F "acquires" additional exponents.

Let's see what happens:

Lemma #2:

For fixed y > 0, xy is continuous for all x: x in N.


By induction on n. For n = 1, we get:

|1+dxy - 1y| =
|F(y, y1+dx-[1+dx], [1+dx]) - F(y, 1, 1)| =
|F(y, ydx, 1) - F(y, 1, 1)| =
|yydx - yy0| < ε, (by Lemma #1, yyx is continuous at 0)

On the other hand:
|1-dxy - 1y| =
|F(y, 1-dx, 0) - F(y, 1, 1)| =
|y1-dx - y1|  < ε, (by Lemma #1, yx is continuous at 1)

Assume now that xy is continuous at x = k. Then:

|k+1+dxy - k+1y| =
|F(y, yk+1+dx-[k+1+dx], [k+1+dx] - F(y, 1, k+1)| =
|F(y, ydx, k+1) - F(y, 1, k+1)| =
|F(y, yydx, k) - F(y, yy0, k)| < ε, (by the inductive step, composition and Lemma #1)

|k+1-dxy - k+1y| =
|F(y, yk+1-dx-[k+1-dx], [k+1-dx] - F(y, 1, k+1)| =
|F(y, y1-dx, k) - F(y, 1, k+1)| =
|F(y, y1-dx, k) - F(y, y1, k)| < ε, (by the inductive step, composition and Lemma #1)

And Lemma #2 is proved. Lemma #2 along with continuity of xy at the non-transitional points: {x: x in R+ - N} (which follows trivially from Lemma #1) proves the main claim.

Let us now see how this function behaves with Maple:

> f_N:=proc(z,w,n)
> option remember;
> if n=0 or n=1 then z^w;
> else z^f_N(z,w,n-1);
> fi;
> end:

And the function rx:

> f_Q:=proc(z,r)
> local fracpart,intpart;
> intpart:=floor(r);
> fracpart:=r-intpart;
> if intpart>0 then
>   f_N(z,z^fracpart,intpart);
> else #intpart=0
>  f_N(z,fracpart,0);
> fi;
> end:

Let us now verify some of the more elaborate properties of the hyperexponential.

First, we know that limn->+∞nx = e-W(-log(x)), whenever x is [(1/e)e, e(1/e)]. Perhaps we can then see some similar behavior on our rx (green line below is e-W(-log(x))).

At the left bound of convergence, (1/e)e:

> plot({'f_Q(exp(-1)^exp(1),r)', exp(-1)},'r'=0...30);


At the right bound of convergence, e(1/e):

> plot({'f_Q(exp(exp(-1)),r)', exp(1)},'r'=0...30);


Right of the right convergence bound:

> plot({'f_Q(1.9,r)'},'r'=0...3.5);


Left of the left convergence bound:

> plot({'f_Q(0.02534,r)'},'r'=0...6.5);


Note that in all cases, rx is continuous at the transitional points r = n for fixed x. Note also how the function behaves left of (1/e)e where it is known that nx is a two-cycle. On the other hand we have also:

Lemma #3:

For fixed y > 0, yx is continuous for all x in R.

Sketch of Proof:

This amounts to showing that for fixed y, the function: F(x, xy-[y], [y]) is continuous. But when y is fixed, then so is [y] = n and so is q = y-[y], and in this case F(x, xy-[y], [y]) = xx...xq (n + 1 x's). This follows easily by using induction on n, the fact that xy is continuous for fixed y and from composition of continuous functions, with a similar argument of that in the proof of lemma #1 (see [3] as above).

Now, we should be able to see the desired extension as a nice continuous interpolation between the graphs of the functions nx for integral n. And indeed:

> plot({seq(f_Q(x,2+n/10),n=1..10)},'x'=0..2);


The more interesting initial and final segments of the above graph (to view those segments, change the function bounds to x=0..1 and x=1..2 in the Maple plots above)[4].

initial segment

final segment

To watch the interpolation as an animation:

> display([seq(plot('f_Q(x,2+n/10)','x'=0..2),n=1..10)],insequence=true);


What does the function yx look like for real y, intuitively? Roughly speaking, it is a growing tower of x's, with y controlling the tower's acquisition of further exponentials. The highest exponent q = y-[y], always varies in [0,1). The interesting stuff happens as y approaches a natural number n from the left. When y approaches n thus, the tower still has [y] + 1 = n - 1 + 1 = n exponentials. I.e. it is xx...xq, n x's (q = 1-).

Now when y passes over n becoming an integer and then growing further, the last exponential xq "stabilizes" to x1 and a new exponential starts on top of it, with a new q very close to 0. I.e. xx...xq, n + 1 x's (q = 0+).

The exp function (which is what's working under the scenes) makes the transition seamless, resulting in a smooth transitioning into the exponential tower that has one more exponential at its top.

Intuitively, one could perhaps visualize this function as an already infinite exponential, in which successive state exponents get activated continuously. I.e.,


The state exponents yi of the function are determined uniquely by the decomposition of y as,

y = [y] + {y-[y]} = n + q, n in N, q in [0, 1), with yi = 1 for i <= n, yn+1 = q, yj = 0, j > n.

yi always ranges in [0,1) and the function starts with yi = 0, for all i > 1. As y in yx moves in (0, +∞), it causes (by virtue of its own unique decomposition above) a continuous activation of those exponents yi, according to the scheme above, causing successive acquisitions of further exponentials, which force the tower to grow indefinitely, preserving however continuously the functions nx as y passes through the naturals. And that's what we wanted.

What is also interesting, is that the above continuous extension satisfies the hyperexponential-logarithm property: log(yx) = y-1x*log(x) for all y in R, y > 0.

That the property log(nx) = n-1x*log(x) holds for y in N, can be shown easily via induction.

Now let's see if the above identity is true for yx with x, y > 0. Assume than y is in R+-N. log(yx) = log(F(x, xy-[y], [y])) (1)

Let [y] = n, y - [y] = q, n in N, q in [0,1).

Then (1) is equal to:

log(xx...xq) (n+1 x's) =
xx...xq*log(x) (n x's) =
F(x, xq, n-1)*log(x) (2)

Now if y is in R+-N, it is true that if [y] = n then [y-1] = n-1, therefore,

y-1-[y-1] = y-1-(n-1) = y-1-n+1 = y-n = y-[y] = q, and therefore,

y-1x*log(x) =
F(x, xy-1-[y-1], [y-1])*log(x) =
F(x, xq, n-1)*log(x). (3)

The result follows from (2) and (3) (a more formal proof can be given using induction, which the author omits).

Complex Trace

Note that yx as defined above works for y >= 0 (naturally), but there is no problem if x is complex. In other words, yw, y >=0, w in C, works as expected. In fact, tracing the behavior of yw can reveal a plethora of information about the convergence of various iterated exponentials. In particular, Macintyre in the references argues as follows:

"If we note that the function w=exp(i*π*z/2) maps the half strip 0<Re{z}<1, Im{z}>0 on to the quadrant |w|<1, 0<arg(w)<π/2, the convergence (of iii...) is proved by considering iterations of this mapping..."

With Maple, the above can be visualized as follows:


> for k from 1 to 5 do
> p[k]:=plot([seq([Re((w@@k)(1/10*n)),Im((w@@k)(1/10*n))],n=0..10)]):
> od:

> plist:={seq(p[k],k=1..5)}:
> display(plist);

basin 1

The Macintyre reference contains a hand-drawn representation of the basin exactly as shown above.

Continuously tracing yi, for y >=0, produces a surprisingly similar result:


basin 2

The behavior of f_Q can become quite complex, literally. It is obvious that n(-1) = -1, for all n in N, however, continuously tracing f_Q(-1,y) can lead to an infinity of new surprises:


complex trace 01

> complexplot('f_Q(-1,y)',y=1..2);

complex trace 12

> complexplot('f_Q(-1,y)',y=2..3);

complex trace 23

> complexplot('f_Q(-1,y)',y=3..4);

complex trace 34

> complexplot('f_Q(-1,y)',y=4..4.05);

complex trace 45

Note that while f_Q always returns to -1 (infinitely often, since n(-1) = -1, for all n in N), the in between trace is very complex.

The only problem function yx has, is that it is not made to agree with the hyperroot/tetraroot function as it was defined in a previous article. However, this is a minor nuisance, because it is rather the definition of the hyperroot which may be considered deviant in this case.


  1. For an in-depth examination of the problem consult the Tetration References.
  2. There is a way to extend tetration to real numbers based on tetraroots which preserves commutativity of the hyper exponents when both exponents are rationals and reciprocals of each other. For details, consult this article.
  3. For the actual details of extending the fundamental exponentials, Ga(x) = ax and Ha(x) = xa continuously over the reals, the reader should consult "The Number Systems, Foundations of Algebra and Analysis", by Solomon Feferman, page 285.
  4. Compare with the graphs in the Tetration References.