From: Thomas Walker Lynch Date: Tue, 14 Jul 2026 12:58:19 +0000 (+0000) Subject: new computation theoretic TM section X-Git-Url: https://git.reasoningtechnology.com/%27%20%20%20window.RT.dirpr_library%20%20%20%27/Hindu-Arabic%20number%20fig%201.png?a=commitdiff_plain;h=d9a34ded4dba7b52120b528e5441443890bf2830;p=TM-2026 new computation theoretic TM section --- diff --git a/document/TM-2026.html b/document/TM-2026.html index a509eae..44c3ad0 100644 --- a/document/TM-2026.html +++ b/document/TM-2026.html @@ -328,7 +328,9 @@ The computation theory Turing Machine -

This is the definition of the Turing Machine from Hopcroft and Ullman's book John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation (Reading: Addison Wesley, 1979).. +

The Hopcroft and Ullman Turing Machine

+ +

This definition comes from Hopcroft and Ullman's book with some terminology only changes to make it flow into the text here John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation (Reading: Addison Wesley, 1979)..

@@ -356,11 +358,103 @@

I have introduced the qualifier programmed in front of the finite state machine controller because each Turing Machine that accomplishes a different task, has a different finite state machine controller. The rest of the Turing Machine remains fixed. Hence, when the mathematician defines a custom task controller, he is essentially programming the machine.

-

Here the input alphabet is said to be a subset of a larger alphabet. This allows some symbols to be set aside and only used by the machine. In the architecture description given below, those symbols in the larger set, but not in the input set are called control symbols. Hopcroft and Ullman have included the empty symbol as a control symbol. However, the empty symbol is found on tapes. This might make it challenging to write machines that are given descriptions of tape contents as input.

+

Here the input alphabet is said to be a subset of a larger alphabet. This allows some symbols to be set aside and only used by the machine. In the architecture description given below, those symbols in the larger set, but not in the input set are called control symbols. Hopcroft and Ullman have included the empty symbol as a control symbol. However, they have simultaneously listed it as a separate component.

+ +

State transitions are gated by the read value from the tape. Each state transition function includes actions to be taken, hence their programmable controller is a Mealy style state machine. The step action is mandatory, though it can be in either direction. The write action must be specified, but the write could be the same symbol that is read, hence it is actually an optional action.

+ +

Hopcroft and Ullman explain a step of the machine by showing the state variable melded in with a representation of the tape to the left of the symbol the head is indicating. Suppose \delta(q, X_i) = (p, Y, L); i.e., the next move is leftward. Then, +

+ + + X_1 X_2 \cdots X_{i-1} q X_i X_{i+1} \cdots X_n \underset{M}{\vdash} X_1 X_2 \cdots X_{i-2} p X_{i-1} Y X_{i+1} \cdots X_n + + +

So first the tape is, X_1 X_2 \cdots X_{i-1} X_i X_{i+1} \cdots X_n, with the head immediately before X_i, and in state q. Then after a step of the machine, the tape is X_1 X_2 \cdots X_{i-1} Y X_{i+1} \cdots X_n, with the head immediately before X_{i-1}, and in state p. Thus X_i was overwritten with Y, and the head stepped left. +

+ +

A goal of the computation theorist in defining a Turing Machine is to make the math concise and elegant as they can make it. This notation qualifies. However, the goal of the computer architect is to make an intuitive to design and test machine that performs well. Perhaps if a computer architect were to define the computational Turing Machine, this change in emphasis would favor a different definition.

+ +

The empty symbol

+ +

The initial tape is often said to be empty, where an empty tape is one where every square has an empty symbol written to it.

+ +

Also, there comes a time in some proofs when an empty symbol is written over a data symbol on the tape. This is said to erase the data symbol. Thus a machine allows that the replacement symbol specified in a state transition can be the empty symbol.

+ +

Computational theorists often describe a two step process. First that of having a Turing machine write an input string on to a tape, where the tape was initially filled with all empty symbols, and then secondly using another Turing Machine that is to recognize if said input string fits a particular pattern. In this manner a tape is used as a communication medium, and it follows that communication theory can be applied to this messaging scenario. Messages sent on a channel must be structured in a manner that they can be placed on the channel, and then later recovered. Such a structure is called a communication protocol. The protocol implies a higher authority as both the sender and the receiver must have knowledge of the same protocol designed in. In a sense, a protocol is the meta-message that is sent before the message is sent.

+ + +

The intention of placing the empty symbol in \Gamma but not in \Sigma appears to be that of reserving the empty symbol as a structural component in a communications protocol. This protocol was designed by mathematicians with the intention of making it impossible for programmers to create input tape messages that can not be recovered by a receiving recognizer Turing Machine. In short, the empty symbol is being used as an in band EOT, end of transmission, symbol.

+ +

If so, this protocol fails to prevent programmers from making Turing Machines that make messages that can not be recovered by a receiving Turing Machine, because the Turing Machines were bestowed with the ability to erase characters. An input machine could, for example, happily make an array of strings while using the empty symbol to separate the elements of the array. Nothing in the Turing Machine definition prevents this.

+ +

Furthermore, the Universal Turing machine can be the aforementioned higher authority. In which case, Turing Machine their tapes, are written to a Universal Turing machine's tape. Hence, it is not only possible to want to terminate strings, as mentioned in the prior paragraph, the very problem is embedded in proofs such as the Halting problem proof.

+ +

A common technique programmers use for embedding strings with terminators within other strings is to embed escape characters. This is another in band protocol, and it is not a every efficient one. The escape sequences grow exponentially with nesting levels. Also such strings with embedded escape sequences can not be interpreted without knowledge of the intended nesting level of the string author, which thus requires the interpreter of the string to know the author's intentions.

+ +

If we are to design communication protocols, there are better ways to do it. Out of band control, for example, packet communication, or run length encoding, has much better characteristics.

+ +

But if the empty symbol is merely an EOT encoding, then why call it empty?

+ +

A bookshelf is said to be empty when there is no obstacle to enshelving a book or other object on it. This is not to say there is nothing there in first place. Air gets displaced, if the bookshelf is under water, it can still be empty, because a book can be placed on it. The air, or the water, does not present an obstacle. If the bookshelf is limited to only hold books, then an shelf is empty when no book is available, and not empty otherwise. Attempting to pull a book from an empty shelf does not yield a book who's title is 'Meditations upon Emptiness', rather the attempt fails.

+ +

In this sense then, a Turing Machine is always empty, as no symbol on the tape presents an obstacle to writing a new symbol.

+ +

There are some concepts that can not be represented as a symbol. The concept of tape obstacle symbol is not representable with the current Turing Machine design; however, with a small modification, we could set aside a control symbol, that once written, the machine would refuse to overwrite it.

+ +

Another concept that can not be represented with a symbol on a Turing Machine is that of the unknown. The very workings of the Turing machine depend upon state transitions based on matching a symbol. A person could to modify a Turing Machine to non-deterministically explore all possible branches upon seeing such a symbol, but that might not be the correct things to do, as a cell with an unknown value only has one value in it, the problem being that one value is not known. There is no general concept built into the Turing Machine of taking multiple branches and then through some means testing to see which was the correct branch. Any attempt to do this will have to incorporate a testing concept. The unknown is not merely a theoretical curiosity, because this is how real computer memories are initialized.

+ +

Emptiness is another concept which a Turing Machine symbol can not represent. As mentioned above, all symbols can be written with equal ease to tape. A state machine could have an arc whereupon reading an empty symbol, the machine goes to the error state, indicating that the read failed, but this is not the definition given for the computational Turing Machine.

+ +

For reasons of supporting recursion, the computation theoretic Turing Machine given in the next section will have a set of predefined symbols that are included with the alphabet of symbols. Where a communication protocol is required, the Turing Machine programmer must define it.

-

State transitions are gated by the read value from the tape. Each state transition function includes actions to be taken, hence their programmable controller is a Mealy style state controller. The step action is mandatory, though it can be in either direction. The write action must be specified, but the write could be the same symbol that is read, hence it is actually an optional action.

+

The singular-unknown

-

A goal of the computation theorist in defining a Turing Machine is to make the math elegant and simple. In contrast, the goal of the computer architect is to provide a clear path to implementation. Perhaps if a computer architect were to define the computational Turing Machine, it would look more like this:

+

In the first edition of this book, I introduced a "no read until after write" rule so as to side step the blank symbol issue. This did not displace the need for a communication protocol when tapes were sent as messages.

+ +

The standard 9 track tape introduced by IBM in 1964 came from the factory unformatted, the format operation would then write a header and an EOF marker, to mark the end of the device file. Then when an standard library call, such as open(), followed by write(), would writer over the EOF marker, and continue to write the data, then would write a new EOF marker, essentially pushing back the EOF marker. EOF could be pushed back until the physical EOT marker was struck. This is similar in some ways to the how the empty symbol is being used on the computation theoretic Turing Machine as we see in the Hopcroft and Ullman book if we consider the blank to be an EOF marker. However, there is a difference in that the real machine would never use an EOF to erase data characters. Note then while using the standard library, the blank part of the tape could not be read until after it was written, so early tapes indeed enforced the "no read until after a write" rule.

+ +

Note, however, if the programmer seeked the head back into the device file to do write the device EOF would be nowhere in site. The burden of the "no read until after a write" rule would then fall on the shoulders of the programmer, as would the structuring of the data.

+ +

Core memory, and then system memory, was random access and initially fully accessible. The data would be whatever scrambled mess the machine booted with, or in early virtual memory systems, whatever was left over from the prior use of the page. That approach; however, was a security hazard, so today a page is initially allocated from a read only zero page, and due to a copy on write trap, a new page is created in memory then scrubbed with zeros. If the computational Turing Machine's blank symbol maps to a word of zeros, then the blank symbol would still not be a good model, because generally the data message, say sent between the input writer, and the recognizer receiver, will also contain many zeros. The nice part is if a programmer attempts to dereference a zero pointer, there will be a segment fault. So in this system the program is again burdened with maintaining the "no read until after a write" rule.

+ +

The computation theoretic Turing Machine can instruct computer architecture through a detection of failure of "read after write" if instead of an empty symbol, the machine is modified to support the singular-unknown symbol.

+ +

A singular unknown is a valid single value read from the tape, but despite being able to discern it as a symbol, no decision can be based on its value. However, it is a valid operation to copy it to another cell on the tape. The current computer theoretic Turing Machine definition has no ability to effect his specification. By the current definition, every state transition reads the value under the head, and then gates to the next state based on that value. Hence, there is no escape from making a decision based on the value under the head, and as each state transition comes with a mandatory step, there will be a different value under the head in the next state.

+ +

The TTCA computation theoretic Turing Machhine

+ + + M = (Q, \Sigma, κ, A, \lambda, \delta, q_0, q_h, q_e) + + +

Where the components are redefined to strictly model a Moore machine organization:

+ + + +

+ By separating the operational action \lambda from the transition evaluation \delta, the tuple accurately reflects a Moore machine organization. The action is securely bound to the state itself, exactly matching an architecture where each entry in the state dictionary executes one machine action before resolving the next state list. +

The Turing Machine architecture/organization @@ -3437,5 +3531,5 @@ Now suppose defining a Turing Machine that initially has the head on the leftmos --> -