<h1>Introduction</h1>
<p>
- In 1893 Gottlob Frege published an axiomatic construction of mathematics from set theory. Frege's grand objective was somethign he called <RT-term>Logicism</RT-term>, the philosophical thesis that all of mathematics can be derived entirely from pure logic. To achieve this, his specific machinery relied upon unrestricted set comprehension, formalized as Basic Law V <RT-cite ref="Gottlob Frege, Grundgesetze der Arithmetik, Vol. II, 1903, Appendix (Nachwort), p. 253. Frege writes: 'Hardly anything more unfortunate can befall a scientific writer than to have one of the foundations of his edifice shaken after the work is finished.'"></RT-cite>.
+ In 1893 Gottlob Frege published an axiomatic construction of mathematics from set theory. Frege's grand objective was somethign he called <RT-term>Logicism</RT-term>, the philosophical thesis that all of mathematics can be derived entirely from pure logic. To achieve this, his specific machinery relied upon unrestricted set comprehension, formalized as Basic Law V <RT-cite ref="Gottlob Frege, Grundgesetze der Arithmetik, Vol. II, 1903, Appendix (Nachwort), p. 253."></RT-cite>.
</p>
<p>
At a conference in Paris in 1900 David Hilbert presented a list of pressing unsolved problems in mathematics.
- Second on his list was "The Compatibility of the Arithmetical Axioms," Hilbert challenged mathematicians to find a means to demonstrate that "a finite number of logical steps based upon them [axioms] can never lead to contradictory results" <RT-cite ref="Conference of 1900 printed in English: F.N. Cole et al., eds., Bulletin of the American Mathematical Society, Vol. VIII, The Macmillan Company, 1902. This can be found at https://www.gutenberg.org/cache/epub/71655/pg71655-images.html. The MathWorld article on this subject, https://mathworld.wolfram.com/HilbertsProblems.html, explains that Hilbert presented 10 problems at the conference, though the publication shows 23 problems, and shortly later a 24th problem was added. Based on the notes of this citation, it appears the second problem was second on all the lists. Also note, he discusses completeness specifically as an axiom for bounding on the sets, which appears to be distinct from the question of logical completeness for an axiomatic system."></RT-cite>.
+ Second on his list was "The Compatibility of the Arithmetical Axioms," Hilbert challenged mathematicians to find a means to demonstrate that "a finite number of logical steps based upon them [axioms] can never lead to contradictory results" <RT-cite ref="Conference of 1900 printed in English: F.N. Cole et al., eds., Bulletin of the American Mathematical Society, Vol. VIII, The Macmillan Company, 1902. This can be found at https://www.gutenberg.org/cache/epub/71655/pg71655-images.html. The MathWorld article on this subject, https://mathworld.wolfram.com/HilbertsProblems.html, explains that Hilbert presented 10 problems at the conference, though the publication shows 23 problems, and shortly later a 24th problem was added. Based on the notes of this citation, it appears the second problem is the same on all of these lists. Also note, Hilbert discusses <em>completeness</em> specifically as an axiom for bounding on the sets, which appears to be distinct from the question of logical completeness for an axiomatic system."></RT-cite>.
</p>
<p>
</p>
<p>
- In April 1936, Alonzo Church leveraged Gödel's foundational papers to directly answer the Entscheidungsproblem <RT-cite ref="Alonzo Church, 'An Unsolvable Problem of Elementary Number Theory', American Journal of Mathematics, Vol. 58, No. 2, April 1936, pp. 345-363."></RT-cite>. Working independently, Alan Turing had arrived at his own mechanical solution; however, upon seeing Church's April publication, Turing rushed to submit his manuscript on 28 May 1936, appending a proof that his mechanical architecture was mathematically equivalent to Church's lambda calculus <RT-cite ref="Alan M. Turing, 'On Computable Numbers, with an Application to the Entscheidungsproblem', Proceedings of the London Mathematical Society, Vol. s2-42, No. 1, received May 28, 1936, published November 30, 1936, pp. 230-265."></RT-cite>. As Hilbert and Ackermann concede in the 1938 second edition of their textbook, Church's results demonstrated that "the quest for a general solution of the decision problem must be regarded as hopeless" <RT-cite ref="David Hilbert and Wilhelm Ackermann, Principles of Mathematical Logic, Second Edition (1938), translated 1950, p. 124."></RT-cite>. By giving the "somewhat vague intuitive concept of recursion a certain precise formalization," Church proved the "non-existence of such a recursive procedure" that could mechanically yield a value of truth or falsehood for every individual formula <RT-cite ref="Ibid, p. 124."></RT-cite>. With this proof, Church established the absolute logical boundary of formal mathematics.
+ In April 1936, Alonzo Church leveraged Gödel's foundational papers to directly answer the Entscheidungsproblem <RT-cite ref="Alonzo Church, 'An Unsolvable Problem of Elementary Number Theory', American Journal of Mathematics, Vol. 58, No. 2, April 1936, pp. 345-363."></RT-cite>. Working independently, Alan Turing had arrived at his own mechanical solution and upon seeing Church's April publication, Turing rushed to submit his manuscript on 28 May 1936, appending a proof that his mechanical architecture was mathematically equivalent to Church's lambda calculus <RT-cite ref="Alan M. Turing, 'On Computable Numbers, with an Application to the Entscheidungsproblem', Proceedings of the London Mathematical Society, Vol. s2-42, No. 1, received May 28, 1936, published November 30, 1936, pp. 230-265."></RT-cite>. As Hilbert and Ackermann concede in the 1938 second edition of their textbook, Church's results demonstrated that "the quest for a general solution of the decision problem must be regarded as hopeless" <RT-cite ref="David Hilbert and Wilhelm Ackermann, Principles of Mathematical Logic, Second Edition (1938), translated 1950, p. 124."></RT-cite>. By giving the "somewhat vague intuitive concept of recursion a certain precise formalization," Church proved the "non-existence of such a recursive procedure" that could mechanically yield a value of truth or falsehood for every individual formula <RT-cite ref="Ibid, p. 124."></RT-cite>. With this proof, Church established the absolute logical boundary of formal mathematics.
</p>
<p>
- Working independently in the spring of 1936, Alan Turing introduced the Turing Machine abstraction to set mechanical limits on the Entscheidungsproblem. This theoretical device was used to prove that no primary 'analyzer' program can universally decide whether a second 'studied' program will halt when it is run <RT-cite ref="Alan M. Turing, 'On Computable Numbers, with an Application to the Entscheidungsproblem', Proceedings of the London Mathematical Society, Vol. s2-42, No. 1, 1936, pp. 230-265."></RT-cite>. An answer to this <RT-term>halting problem</RT-term> (specifically asserting "The studied machine halts" or "The studied machine does not halt") would indeed be a statement in first-order logic. Thus, by showing no analyzer can universally make such a determination without entering an infinite recursion, Turing proved that no decider could exist for the Entscheidungsproblem. It is at this exact historical and mechanical boundary that the classical limits of machine computation were cemented.
+ Working independently in the spring of 1936, Alan Turing introduced the Turing Machine abstraction to set mechanical limits on the Entscheidungsproblem. This theoretical device was used to prove that no primary 'analyzer' program can universally decide whether a second 'studied' program will halt when it is run <RT-cite ref="Alan M. Turing, 'On Computable Numbers, with an Application to the Entscheidungsproblem', Proceedings of the London Mathematical Society, Vol. s2-42, No. 1, 1936, pp. 230-265."></RT-cite>. An answer to this <RT-term>halting problem</RT-term> (specifically asserting "The studied machine halts" or "The studied machine does not halt") would indeed be a statement in first-order logic. Thus, by showing no analyzer can universally make such a determination without entering an infinite recursion, Turing proved that no decider could exist for the Entscheidungsproblem.
</p>
<p>
<p>
In reading Alan Turing's 1936 paper, it is striking how modern the text feels, specifically because he discusses algorithms, stored programs, and the mechanical limits of computation.
- While his contemporaries largely built purely mathematical and logical frameworks, Turing uniquely tied computation theory directly to the abstraction of machines executing stored programs. Because physical hardware capable of executing stored memory programs had not yet been invented, this explicit architectural grounding makes Turing's work remarkably prescient. Still, Turing could not formally connect the Turing Machine to modern architectures, simply because those architectures did not yet exist. Here, by <em>modern</em>, I refer architectures utilizing random-access system memory, dedicated instruction fetch streams with dynamic branching, and discrete processing units. Though Charles Babbage's 1842 Analytical Engine touched on these concepts, they would wait until the 1940s to re-emerge. The practical engineering context of 1936 was limited to calculating machines programmed via patch panels. Hence, for example, there is no explanation in his paper as to why a von Neumann architecture machine (1945) running a program would exhibit the computation theoretic results derived from a computation theory based on the Turing Machine (1936).
+ While his contemporaries largely built purely mathematical and logical frameworks, Turing uniquely tied computation theory directly to the abstraction of machines executing stored programs. Because physical hardware capable of executing stored memory programs had not yet been invented, this explicit architectural grounding makes Turing's work remarkably prescient. Still, Turing could not formally connect the Turing Machine to modern architectures, simply because those architectures did not yet exist. Here, by <em>modern</em>, I refer to architectures utilizing random-access system memory, dedicated instruction fetch streams with dynamic branching, and discrete processing units. Though Charles Babbage's 1842 Analytical Engine touched on these concepts, they would wait until the 1940s to re-emerge. The practical engineering context of 1936 was limited to calculating machines programmed via patch panels. Hence, for example, there is no explanation in his paper as to why a von Neumann architecture machine (1945) running a program would exhibit the computation theoretic results derived from a computation theory based on the Turing Machine (1936).
</p>
<p>
</p>
<p>
- An <RT-term-em>architecture</RT-term-em> provides programmers with information that is valuable when designing the logic of programs. This includes programmers across the entire software stack, such as systems programmers, compiler writers, firmware engineers, and application developers. In addition to specifying the instructions (instruction set architecture), it includes describing the memory and hardware virtualization features, specifying the behavior of the interrupt subsystem, the method of doing I/O, DMA, the special registers and their effects, any architectural busses, and the standards to be followed for each if any. More recently, this also includes specifying how programs can make use of secure areas. The architecture is specified by an <RT-term>architect</RT-term>.
+ An <RT-term-em>architecture</RT-term-em> provides programmers with information that is valuable when designing the logic of programs. This includes programmers across the entire software stack, such as firmware engineers, driver developers, systems programmers, compiler writers, and application developers. Although applications programs might only be exposed to the <RT-term>virtual architecture</RT-term> presented by various standards, various libraries, and the programming language used. In addition to specifying the instructions (instruction set architecture), <RT-term-em>architecture</RT-term-em> includes describing the memory and hardware virtualization features, specifying the behavior of the interrupt subsystem, the method of doing I/O, DMA, the special registers and their effects, any architectural busses, and the standards to be followed for each if any. More recently, this also includes specifying how programs can make use of secure areas. The architecture is specified by an <RT-term>architect</RT-term>.
</p>
<p>
The classic text by Hamacher, Vranesic, and Zaky carefully defines the organizational level as sitting between architecture and implementation. <RT-cite ref="V. Carl Hamacher, Zvonko G. Vranesic, and Safwat G. Zaky, Computer Organization, 2nd Edition, McGraw Hill, 1984"></RT-cite>
- <RT-term-em>Organization</RT-term-em> is the register-transfer level description of the machine, which includes internal buses, external buses and the state machines that implement the protocols used, control units, interrupt structures, and ALU layout. Crucially, it is at this level that decisions regarding instruction-level parallelism are made, such as whether the processor will employ a scalar, superscalar, or VLIW design, the depth of its execution pipelines, the use of out-of-order execution, branch prediction strategies, and the specific hierarchy of hardware caches. It dictates the logical arrangement of hardware and the procedures that force the data to flow to satisfy the architectural constraints. The organization is made by a <RT-term>design architect</RT-term>.
+ <RT-term-em>Organization</RT-term-em> is the register-transfer level description of the machine, which includes internal buses, external buses and the state machines that implement the protocols used, control units, interrupt structures, and ALU layout. Crucially, it is at this level that decisions regarding instruction-level parallelism are made, such as whether the processor will employ a scalar, superscalar, or VLIW design, the depth of its execution pipelines, the use of out-of-order execution, branch prediction strategies, and the specific hierarchy of hardware caches. It dictates the logical arrangement of hardware and the procedures that force the data to flow to satisfy the architectural constraints. <RT-term>Organization</RT-term> is sometimes called <RT-term>micro-architecture</RT-term>, and it is made by a <RT-term>design architect</RT-term>.
</p>
<p>
- It is not a requirement of a computer organization, nor an architecture, that it be capable of physical realization. The abstract Turing Machine organization developed in a later section serves as an example. Instead, an abstract organization can serve other purposes, in this case as a stepping stone to a modern architecture that could be realized.
+ It is not a requirement of a computer organization, nor an architecture, that it be capable of physical realization. The abstract Turing Machine organization developed in a later section serves as an example. Instead, an abstract organization can serve other purposes, in this case as a stepping stone to another organization that can be realized.
</p>
<p>
- The <RT-term-em>implementation</RT-term-em> instructs the manufacturing teams very specifically on what is to be built. For a microprocessor chip, this consists of instructions for cutting the lithography masks, the package to be used, and the production test programs to be run. The masks embody the placement of all the wiring, the location of doping wells, and the placement of transistor gates, including their specific sizes. The implementation is done by <RT-term>design engineers</RT-term> with the assistance of design synthesis tools and CAD tools.
+ The <RT-term-em>implementation</RT-term-em> instructs the manufacturing teams very specifically on what is to be built. For a microprocessor chip, this consists of the full wiring of the logic gates and transistors, instructions for cutting the lithography masks, the package to be used, and the production test programs to be run. The masks instructions for cutting the masks consists of the sizes and placement doping wells and gates, placement of contacts, where to run wires, etc. An <RT-term>implementation</RT-term>. The implementation is designed by <RT-term>design engineers</RT-term>, with the assistance of design synthesis tools and CAD tools.
</p>
<p>
<h2>Where the Turing Machine fits in</h2>
<p>
- The Turing Machine is a computation theory object that is suggestive of a simple architecture, and a computer organization. Any student who has had to do homework problems centered on Turing Machines, will have tracked the flow of data through the machine, i.e. worked at the register transfer level. However, a little work is needed to complete the architecture analog. The fundamentals are present, the read/write head, the tape, the procedure for using the tape, but other components are missing. The manipulation of symbols remains ungrounded. The tape is not well defined. The use of emptiness is non-architectural like. The tape transport is not articulated, though it is implied. The read buffer that holds a value read, so the programmed controller can do a write without clobbering the read data needed for the next transition is not identified as a component. As we proceed, we will likely discover other missing components.
+ The Turing Machine is a computation theory object that is suggestive of a simple architecture, and a computer organization. Any student who has had to do homework problems centered on Turing Machines, will have tracked the flow of data through the machine, i.e. worked at the register transfer level. However, a little work is needed to complete the architecture analog. The fundamentals are present, the read/write head, the tape, the procedure for using the tape, but other components are missing. The manipulation of symbols remains ungrounded. The tape is not well defined. The use of emptiness is non-architectural like. The tape transport is not articulated, though it is implied. The read buffer that is required, so the programmed controller can do a write without clobbering the read data needed for the next transition, is not identified as a component. As we proceed, we will likely discover other missing components.
</p>
<h2>Computation theoretic consequentiality</h2>
</RT-math>
<p>
- then we can say without qualification that <RT-math>T</RT-math> is a <RT-neologism>same results transform</RT-neologism>. Though still implied are the sets of machines and tapes.
+ then we can say without qualification that <RT-math>T</RT-math> is a <RT-neologism>same results transform</RT-neologism>. Though still implied are the sets of machines, tapes, and questions.
</p>
<h3>Definition of the computation theoretic consequential/inconsequential transform property</h3>