From: Thomas Walker Lynch Date: Thu, 16 Jul 2026 14:59:51 +0000 (+0000) Subject: . X-Git-Url: https://git.reasoningtechnology.com/%5B%5E?a=commitdiff_plain;h=3456e5eef2dcba1097666bf53fa1aeb7035f6604;p=TM-2026 . --- diff --git a/document/book/TM-2026.html b/document/book/TM-2026.html index 778fa1d..c426ea1 100644 --- a/document/book/TM-2026.html +++ b/document/book/TM-2026.html @@ -19,10 +19,19 @@ + Preface

Dear Zen master, here I submit my thesis for your consideration.

+

All communication is founded upon common knowledge, so here are some notes on the style of English prose used in this book.

+ +

Anyone familiar with my writing knows that I have experimented with gender forms in technical language for reasons of inclusion. For example, I used the plural-as-singular style in early writings and was applauded by some, though categorized as illiterate by others. Since then, I have evolved a writing style that emphasizes using roles as subjects: the mathematician, the author, the programmer. Such subjects are singular, so for grammatical agreement, I use the inclusive he. It is structurally much cleaner to use he as inclusive of all readers than it is to force "they" to take on a singular form. I strictly reserve "a person" for abstract generalizations where the subject is truly an unknown third party, including an AI.

+ +

In the prior edition of this book, the preface included a discussion on the meaning of the word "may" according to RFC 2119, the guidelines for specification writing. There is an important distinction between the 'may' of options or permission, and the 'may' of probability. However, distinguishing between the two was too much of an ask of readers, most of whom skip the preface anyway. So in this edition, I avoid the temptation to use 'may' and replace it with a direct statement of what I mean. "It is of high probability that..." or "There are options for...".

+ +

Directly saying what is meant—who would have thought of it? The RFC 2119 authors have clearly struggled with this as well, as they now require the words they discuss to be strictly capitalized to prove they have a proscribed meaning.

+ The search that led to the Turing Machine @@ -438,7 +447,7 @@

Turing described a clerk writing symbols into squares, with the option to erase them. He states, "In some of the configurations in which the scanned square is blank (i.e. bears no symbol) the machine writes down a new symbol on the scanned square: in other configurations it erases the scanned symbol."Alan M. Turing, "On Computable Numbers, with an Application to the Entscheidungsproblem," Proceedings of the London Mathematical Society, Series 2, Volume 42 (1936): 231. So Turing's original article uses blank to mean no symbol. Turing fairly consistently refers to "blanks" rather than to a symbol that represents a blank. However, thirty pages in, he does say this, "for in the complete configuration the symbols are all blanks"Alan M. Turing, "On Computable Numbers, with an Application to the Entscheidungsproblem," Proceedings of the London Mathematical Society, Series 2, Volume 42 (1936): 261..

-

The more abstract concept here is that of a container. A piece of paper is a container for symbols. When it contains no symbols, the container is empty. Only when we say the container is a piece of paper does it make sense to call it blank. But we are speaking of abstractions, not of paper. The question is not one of blankness, rather it is the more abstract question of emptiness. When computation theory texts are translated into French, the blank symbol is called the "symbole vide", or literally "empty symbol". Hence, in the French context, paper as a container does not carry with it a distinct terminology. +

The more abstract concept here is that of a container. A piece of paper is a container for symbols. When it contains no symbols, the container is empty. Only when we say the container is a piece of paper does it make sense to call it blank. But we are speaking of abstractions, not of paper. The question is not one of blankness, rather it is the more abstract question of emptiness. As a point of perspective, when computation theory texts are translated into French, the blank symbol is called the "symbole vide", or literally "empty symbol". Hence, in the French context, paper as a container does not carry with it a distinct terminology in the first place.

So the actual question, which dates back to the very definition of the Turing Machine, is this: when a square from Turing's paper has not yet been written to, does it hold an empty symbol, or is it actually empty?

@@ -495,51 +504,83 @@

For ease of programming, the new machine will have three layers of next-state functions. The first one takes into account both the current state and the gate register value. If there is no match for the state and gate register value, then a second next-state function is called; in this case, the current state is not an operand. This is for defining default next state transitions. If a next state is still not defined, the machine moves to a third next-state function which is unconditional. Hence, this is the state the machine goes to if there is no next state specified and there is no default next state defined.

-

For clarity of presentation, the definition will be split into two parts: that which is fixed as part of the Turing Machine definition, and that which is programmable.

+

For clarity of presentation, the definition will be partitioned according to separation of concerns, the first being the fixed part that defines all Turing Machine behavior. Then the memory elements of the Turing Machine will be defined. The third section describes the programmable part of the Turing Machine. The programmable part varies between Turing Machines depending on their purposes.

-

There is a mechanical procedure for converting a Moore Machine into a Mealy Machine, and the reverse. Two such converted machines are equally expressive. Making the read operation an explicit action, instead of having it implied by a state transition, increases the number of states in a controller, and consequently the number of steps that must be taken. However, the new machine can do in two steps anything the former machine could do in one; consequently, this change affects the multiplier constant on the linear term of the step count formula but does not change the computation complexity class determined from such a step count. The three layers of next-state functions are equivalent to one layer where the missing arguments are filled in with all possible values. This potentially increases the number of state transition arcs that must be specified, but the state transition logic and the number of states remain unchanged. Giving the specification in two parts does not change the total specification. Hence, these modifications are computationally inconsequential.

+

There is a mechanical procedure for converting a Moore Machine into a Mealy Machine, and the reverse. Two such converted machines are equally expressive. Making the read operation an explicit action, instead of having it implied by a state transition, increases the number of states in a controller, and consequently the number of steps that must be taken. However, the new machine can do in two steps anything the former machine could do in one; consequently, this change affects the multiplier constant on the linear term of the step count formula but does not change the computation complexity class determined from such a step count. The three layers of next-state functions are equivalent to one layer where the missing arguments are filled in with all possible values. This potentially increases the number of state transition arcs that must be specified, but the state transition logic and the number of states remain unchanged. Partitioning the machine definition by separation of concerns, does not change the total specification. Hence, these modifications are computationally inconsequential.

The TTCA Turing Machine fixed part

-

- MF = (QF, ΣF, AF, λF) -

- -

QF: The set of predefined states, including QF.\mathtt{initial} and QF.\mathtt{unspecified\_decision}.

- -

ΣF: The set of predefined symbols, including ΣF.\mathtt{unspecified} and ΣF.\mathtt{left\_of\_leftmost}.

- -

AF: The set of available actions {\mathtt{no\_op}, \mathtt{left}, \mathtt{right}, \mathtt{write\_σ}(σ), \mathtt{write\_d}, \mathtt{write\_g}}, where σ must be in Σ.

- -

λF: The predefined action table. A set of pairs of the form \langle q_0, a \rangle, where q_0 is the current state, and a is a member of AF.

+
+ + MF = (QF, ΣF, AF, λF) + +
+ +

The set of predefined states:

+
+ QF = \{QF{·}\mathtt{initial}, QF{·}\mathtt{unspecified\_decision}\} +
+ +

Here middle dot acts as a namespace operator, N{·}x. By doing this we assure there will be no aliasing with the symbols provided by the programmer when he defines the programmed state controller.

+ +

The set of predefined symbols:

+
+ ΣF = \{ΣF{·}\mathtt{unspecified}, ΣF{·}\mathtt{left\_of\_leftmost}\} +
+ +

The set of available actions:

+
+ + \begin{aligned} + AF = \{ & \mathtt{no\_op} \\ + , & \mathtt{left} \\ + , & \mathtt{right} \\ + , & \mathtt{write\_σ}(σ) \\ + , & \mathtt{write\_d} \\ + , & \mathtt{write\_g} \} + \end{aligned} + +
+

where σ must be in Σ.

+ +

The predefined action table. A set of pairs of the form:

+
+ λF = \{ \langle q_0, a \rangle, \dots \} +
+

where q_0 is matched to the current state, and a is a member of AF.

The TTCA Turing Machine variables

- - MV = (q, d, g) - +
+ + MV = (q, d, g) + +

q: is the current state of the machine.

+

d: is the data register.

+

g: is the gate register.

+

The TTCA Turing Machine programmable part

- MP = (QP, ΣP, λP, δ, δ_0, δ_{00}) + MP = (QP, ΣP, λP, δ, δ_1, δ_2)

QP: A set of programmed state symbols.

ΣP: A set of programmed data symbols.

-

λP: The programmed actions. A set of pairs of the form \langle q_0, a \rangle, where q_0 is the current state, and a is a member of AF.

+

λP: The programmed actions. A set of pairs of the form \langle q_0, a \rangle, where q_0 is matched to the current state, and a is a member of AF.

δ: A set of state transition triples; each triple is of the form \langle q_0, r.σ, q_1 \rangle. q_0 is matched to the current state of the machine. r.σ is a symbol in register r. q_1 is the next state. q_0 and q_1 come from the total set Q. σ comes from the total set Σ. r is either d or g.

-

δ_0: The default transition table. A set of state transition pairs; each pair is of the form \langle r.σ, q_1 \rangle. r.σ is a symbol found in the specified register, either d or g. q_1 will be taken as the next state.

+

δ_1: The default transition table. A set of state transition pairs; each pair is of the form \langle r.σ, q_1 \rangle. r.σ is a symbol found in the specified register, either d or g. q_1 will be taken as the next state.

-

δ_{00}: A default next state.

+

δ_2: A default next state.

The TTCA Turing Machine in total