SIMPLER Equations for Vinge's Technological Singularity
Hans Moravec, October 2003

These equations supersede and expand on the more confusing
February 1999 "Simple Equations for Vinge's Technological
Singularity"

Express an exponent a bit above 1 as (n+1)/n

The equation

  dx/dt = x^((n+1)/n)  with initial condition x(0) = 1

can be solved in Maple

  dsolve({ diff(x(t),t)=x(t)^((n+1)/n), x(0)=1 } ,x(t));

to produce the solution

              x(t) = (n/(n-t))^n

This has a singularity at t=n.

We discussed exponents in the range 1 to 2.
1 resulted in an exponential, I was surprised
that merely setting it to 2 produced a singularity.

In the solution above, exponent 2 happens when
n = 1, and gives a singularity at t=1.

The exponent approaches 1 as n is made large.  The
singularity recedes farther and farther into the
future, but never actually goes away.

We reach an exponent of 1 (i.e. dx/dt = x) as n
approaches infinity. In that limit (n/(n-t))^n
does indeed become e^t (the limit is the classic
definition of e^t), and the singularity vanishes
to infinitely far into the future.

But for any exponent even slightly greater than 1
there is a singularity, just far away.

------------------

Then I tried a functions sub-polynomial
(i.e. a smidge) faster than linear

   dx/dt = x*(1+log(x))  ->  x(t) = exp(exp(t)-1)

vastly fast double exponential, but without a singularity



But merely square the log, or the log factor

   dx/dt = x*(1+log(x)^2)  ->  x(t) = exp(tan(t))

   dx/dt = x*(1+log(x(t)))^2 ->  x(t) = exp(t/(1-t))

and the singularity is back


Generalizing

dx/dt = x*(1+log(x(t)))^((n+1)/n)  gives

           x(t) = exp((n/(n-t))^n-1)

and again we have a singularity that recedes

------------------

Tickling the tail of the singularity, I see

dsolve({diff(x(t),t)=
  x(t)*(1+log(x(t)))*(1+log(1+log(x(t)))),x(0)=1},x(t));

gets

       x(t) = exp(exp(exp(t)-1)-1)

raising the log log term to (n+1)/n power brings
in a singularity at t=n as before.  So instead
layer on another log in the next term

Let lp(x) = 1+log(x)

dsolve({diff(x(t),t)=
  x(t)*lp(x(t))*lp(lp(x(t)))*lp(lp(lp(x(t)))),x(0)=1},x(t));

->  x(t) = exp(exp(exp(exp(t)-1)-1)-1)

Seems to be a pattern here.

Makes me wonder what the limit of

        x*lp(x)*lp^2(x)*lp^3(x)*lp^4(x)...  

might be

a function still barely faster than linear, yet only
infinitesimally away from triggering a singularity