# What is the most parsimonious model of natural number computation?

Let's define a model of natural number computation to consist of three functions

$E:\mathbb{N} \times \mathbb{N} \rightarrow \mathbb{N}$

$T:\mathbb{N} \rightarrow \mathbb{N}$

$D:\mathbb{N} \rightarrow \mathbb{N}$

with the property that for all computable functions $f:\mathbb{N} \rightarrow \mathbb{N}$,

$\exists p \in \mathbb{N}: \forall x \in \mathbb{N}: D(T^*(E(p,x)) = f(x)$

The idea is that for every computable function $f$ there is a program $p$, which we can Encode along with any input $x$, then pass that to a Transform that we iterate until it reaches a fixed point. Then we Decode that fixed point to get $f(x)$.

We are going to want $E$, $T$, $D$ to all be polynomial-time computable, some bounds on the growth of $T$ to preserve polynomial-time equivalence, and perhaps some other conditions.

My question is, what is the simplest universal machine that can be described in these terms?

I believe that it is possible to have

$E(p,x) = 2^p \cdot (2 \cdot x + 1)$

$D(y) = \frac{y - 1}{2}$

and

$T(2 \cdot n + 1) = 2 \cdot n + 1$

but the full definition of $T$ becomes very complicated. The input number is considered as a binary Turing machine tape, and $p$ as an encoding of the state transition table of a Turing machine, along with its current state and position on the tape. Then $T$ is defined to iterate that machine one step and return the new (even) encoding, or else if it is in a halting state, divide out all powers of $2$. $T$'s implementation can be improved slightly at the expense of $E$, by instead defining $E(p, x) = 2^{2^p} \cdot (2 \cdot x + 1)$. Then an intermediate state can be represented as $2^{2^p \cdot (2 \cdot s + 1)} \cdot (2 \cdot x + 1)$ where $s$ is the tape head position. That makes it easy to describe the decoding and re-encoding of the tape position inside the definition of $T$, but the problem of encoding and iterating a state transition table remains.

I know other ways of setting this up so that $T$ is relatively simple but $E$ and $D$ have longer specifications. For example, I understand Conway proved $T$ can be a Collatz-type function. Also it may be possible to describe Rule 110 this way. Another example that seems more balanced is SKI combinator calculus or Jot, depending on what reduction step function and what kind of Church numerals we choose.

Intuitively, there is a certain amount of necessary complexity involved in defining a universal machine so the best we can do is to shift it around between these functions. But I am not convinced that is true. So I am wondering, is there is some simpler definition of $T$ that is universal given $E(p,x) = 2^p \cdot (2 \cdot x + 1)$ and $D(y) = \frac{y - 1}{2}$, or some other Encoder and Decoder with very short definitions, or where $E(p,x) = E_p(p) \cdot E_x(x)$ for some other functions $E_p$ and $E_x$?

Intuitively, there is a certain amount of necessary complexity involved in defining a universal machine so $\color{blue}{\text{the best we can do is to shift it around between these functions}}$.

That latter part is demonstrably false, due to the fact that your three functions $(E,T,D)$ can all be quite simple while concentrating the "complexity" in yet another place, viz., the program-numbering function. A good example of this is Conway's universal FRACTRAN program called POLYGAME:

$U=\left(\frac{583}{559}\, \frac{629}{551}\, \frac{437}{527}\, \frac{82}{517}\, \frac{615}{329}\, \frac{371}{129}\, \frac{1}{115}\, \frac{53}{86}\, \frac{43}{53}\, \frac{23}{47}\, \frac{341}{46}\, \frac{41}{43}\, \frac{47}{41}\, \frac{29}{37}\, \frac{37}{31}\, \frac{299}{29}\, \frac{47}{23}\, \frac{161}{15}\, \frac{527}{19}\, \frac{159}{7}\, \frac{1}{17}\, \frac{1}{13}\, \frac{1}{3}\right).$

Here $E(p,x)=p\,2^{2^x}$, $D(y)=\log_2\log_2 y$, and $T(n)=nf,$ where $f$ is the leftmost fraction in $U$ for which $nf$ is an integer (taking $f=1,$ i.e. $T(n)=n,$ if there is no such fraction). Practically all of the "complexity" is now involved in determining a number $p$ that codes a desired program.

A program-number for computing the $x$th digit of $\pi$, for example, is $$p_\pi=3^{A}\cdot 5^{2^{89\cdot101!}+2^{90\cdot101!}}\cdot 17^{101!-1}\cdot 23$$ where $$A=2^{100!}+\sum_{i=1}^{38}2^{f_i\cdot101^{i}\cdot100!}+2^{101^{39}\cdot100!}$$ and $f_i$ is the $i$th fraction in the following list: $$\left(\frac{365}{46}\, \frac{29}{161}\, \frac{79}{575}\, \frac{7}{451}\, \frac{3159}{413}\, \frac{83}{497}\, \frac{473}{371}\, \frac{638}{355}\, \frac{434}{335}\, \frac{89}{235}\, \frac{17}{209}\, \frac{79}{122}\, \frac{31}{183}\, \frac{41}{115}\, \frac{517}{89}\, \frac{111}{83}\, \frac{305}{79}\, \frac{23}{73}\, \frac{73}{71}\, \frac{61}{67}\, \frac{37}{61}\, \frac{19}{59}\, \frac{89}{57}\, \frac{41}{53}\, \frac{883}{47}\, \frac{53}{43}\, \frac{86}{41}\, \frac{13}{38}\, \frac{23}{37}\, \frac{67}{31}\, \frac{71}{29}\, \frac{83}{19}\, \frac{475}{17}\, \frac{59}{13}\, \frac{41}{3}\, \frac{1}{7}\, \frac{1}{11}\, \frac{1}{1024}\right).$$

Obviously, the "complexity" being discussed here relates only to the "parsimony of definition", as distinct from computational complexity, etc.

For sources, see this googology wiki entry.

• This is a great answer but there is a technicality, $E(p,x)$ is not computable in time polynomial in $\log(x)$. I think this matters because if we were to implement a polynomial-time algorithm this way on a real computer, representing numbers in binary, it would not actually run in polynomial time because the encoding step takes too long. Maybe this can be worked around with a different representation of the internal state (odd part paired with a recursive decomposition of powers of $2$?), fixing the problem but adding another source of definitional complexity. – Dan Brumleve May 8 '17 at 15:16