Infinite time Turing machine

Infinite time Turing machines (ITTMs) are a generalization of Turing machines to infinite computation lengths.

Definition
In addition to all the standard properties of ordinary TMs, ITTMs have a particular state marked as the limit state. At each step, the ITTM proceeds normally with a timer \(t\) starting at zero and incrementing at each step. If it does not halt for any \(t < \omega\), at \(t = \omega\) each cell on the tape is set to the of that cell's symbol for steps \(t = 0, 1, 2, \ldots\). In addition, the head is set to the initial cell and the state is set to limit. The ITTM continues as before, and if it continues to \(t = \omega2\) without halting, the same thing happens with the limit superior of the tape for \(t = \omega, \omega + 1, \omega + 2, \ldots\). In general, if the ITTM reaches a countable limit ordinal \(\alpha\) without halting, at time \(t = \alpha\), it is set to the limit superior of the tape at \(t = \beta\) for all \(\beta < \alpha\) (i.e. it's set to 0 if, from some point below \(\alpha\) up to \(\alpha\) the cell is set to 0, and it's set to 1 otherwise).

ITTMs are capable of producing far more outputs than ordinary TMs, including ordinals. This leads to several classes of ordinals:


 * An ordinal \(\alpha\) is writable iff an ITTM with trivial input can write \(\alpha\) and immediately halt.
 * An ordinal \(\alpha\) is clockable iff an ITTM with trivial input halts at time \(\alpha\).
 * An ordinal \(\alpha\) is eventually writable iff the output tape of an ITTM with trivial input ultimately converges to \(\alpha\).
 * An ordinal \(\alpha\) is accidentally writable iff an ITTM with trivial input writes \(\alpha\) at any step.

(The first and last two definitions can apply to many mathematical objects other than ordinals) These definitions give rise to several large countable ordinals (the infinite time Turing machine ordinals):


 * \(\lambda\), the supremum of all writable ordinals
 * \(\gamma\), the supremum of all clockable ordinals
 * \(\zeta\), the supremum of all eventually writable ordinals
 * \(\Sigma\), the supremum of all accidentally writable ordinals

It has been shown that \( \ll \lambda = \gamma < \zeta < \Sigma\).

Klev's notations
Ansten Mørch Klev developed two ordinal notations, \(\mathcal{O}^+\) and \(\mathcal{O}^{++}\), which express all writable and eventually writable ordinals, respectively.

Encoding ordinals in bitstrings
Here is a simple way to encode an ordinal in a countably infinite bitstring (read: output tape of a two-color ITTM):


 * "1000..." encodes \(0\).
 * If string S encodes \(\alpha\), then the string "0" + S (where + denotes string concatenation) encodes \(\alpha + 1\).
 * If strings \(S_0,S_1,S_2,\ldots\) encode \(\alpha_0,\alpha_1,\alpha_2,\ldots\), then we interleave the strings into a new bitstring \(T\) according to the following scheme:
 * Start with every bit of \(T\) labeled "empty".
 * Write the bits of \(S_0\) in every second bit of \(T\).
 * Write the bits of \(S_1\) in every second remaining empty bit of \(T\).
 * Write the bits of \(S_2\) in every second remaining empty bit of \(T\).
 * Repeat for all of the \(S_i\).
 * Write "1" in the first bit of \(T\).
 * \(T\) encodes \(\sup\{\alpha_i\}\).

This is of course one of many possible encoding schemes, and within this scheme multiple bitstrings represent a single ordinal.

One-tape machines
\(\gamma[1] = \omega^2\)

\(\gamma[2] ≥ \omega^3+1\)

\(\gamma[3] ≥ \omega^4+2\)

\(\gamma[4] ≥ \omega^5+3\)

...

\(\gamma[7] ≥ \omega^{\omega+2}+20\)

\(\gamma[22] ≥ \omega^{\omega2}\)

Full power machines
\(\gamma[1] ≥ \omega^4+4\)

\(\gamma[3] ≥ \omega^\omega\)