Wang published the results of his first attempt to design and implement a theorem- proving program in “Toward Mechanical Mathematics.” Here he first published his vision of “inferential analysis” and some of his optimistic views for the role that com- puters might play in future mathematics. He also gave a description of his first theorem- proving program, the “System P” that proved theorems from the propositional calculus - that more simple branch of logic. Before moving on to look at Wang’s implementation of Herbrand’s Theorem in the Program P (the focus of the next section), it is worth pausing for a brief comparison with the Logic Theory Machine. The latter program was also capable only of tackling propositional logical theorems from the first three chapters of Principia. In the previous chapter, I explored how Newell and Shaw de- signed a new programming language for the JOHNNIAC computers - the Information Processing Language - consisting for the most part in “list processing operations” for creating, manipulating, and analyzing linked list data structures. They translated the “rules of inference” laid out inPrincipia Mathematica - as interpreted by Hilbert and Ackermann - into forty-four variations of eight basic list-processing operations.225 I
argued that this was areformalism of Principia, introducing new formal and material
225Both Wang and Newell-Simon drew from the rules of inference as laid out by Hilbert and Acker-
mann rather than as presented inPrincipiaitself. See Hilbert, Ackermann,Principles of Mathematical Logic, esp. §§ 3 -9 in which they “establish the following rules for the transformation of logical expres- sions”.
manifestations of its logic and new practices and processes for proving theorems. Wang also enacted a reformalism of Principia in developing and implementing his System P. However, his translation looked quite different. His program was based on an insight from the work of Herbrand and another German logician Gerhard Gentzen: any statement in the predicate calculus can be broken down into its simplest constituent parts such that if the simpler parts are theorems, then the original statement will be as well.226 Using this insight, Wang created a set of eleven rules for pulling a given logical
proposition apart into sets of simpler and simpler formulae (ones that had fewer and fewer logical connectives) until all that was left is set of atomic formulae that can’t be further taken apart.227 Once the proposition had been so broken down, the computer
needed only to check if a certain property held among those atomic formulae and if so, the original statement was a theorem.228 He provides a formal statement of those
rules, but he also described how those rules would be executed step by step by the IBM 701 computer.
226Wang cites the result in “Towards Mechanical Mathematics.” p. 4. The result is originally
presented in Gentzen, “Untersuchungen über das Logische Schliessen,” inMathematik Zeitschrift, Vol. 39 (1934-1935) 176 - 210, 405 - 431.
227The rules were used to iteratively “pull apart” any statement from the propositional calculus by
introducing and removing logical operators such that after each iteration, the proposition would be left with one fewer connective, until only so-called atomic formulae were left. Atomic formulae here are the basic unit out of which complicated logical propositions are constructed. They are indivisible, in that if you removed any piece of them, they would cease to be sensical (or well-formed) propositions at all. Think of them as representing propositions like P = “the sky is blue” or Q = “it is raining.” There are rules for building more complex formulas out of these atomic ones like P IMPLES (NOT-Q) here would mean “The sky is blue” implies that “it is not raining.” Of course, these natural language sentences are just interpretations of the formal system that can be studied independent of any such semantic content.
228There is one fundamental rule that Wang calledP1 that states that “if l,xare strings of atomic
formulae, then l !xis a theorem if some atomic formula occurs on both sides of the arrow.” The arrow in this statement is not the typical “IMPLES” logical arrow, but is rather called a “sequent arrow.” It is part of the formalization that Wang gives to the propositional calculus in order to design the System P that is amenable to being “pulled apart” in this way. In his formulation, every statement that can be input to the program will contain a sequent arrow. The rules for “pulling apart” the statement act on both sides of the arrow such that, when they can’t be pulled apart any more, if the same atomic formula appears on both sides of that arrow, then the original statement is a theorem. Those interested in the formal specification of this system and the eleven rules can consult Wang, “Toward Mechanical Mathematics” pp. 4 - 6. The implementation is given on pp. 6 - 7.
In Wang’s implementation, every logical proposition is input to the computer as a concatenation of seventy-two symbols (the number of columns on an IBM 704 punched card), each to be stored in its own address in memory. He implemented each of his eleven rules in terms of how it would operate on the seventy two memory addresses for a given proposition in question. For example, the very beginning of any run of the program would proceed as follows:
The program enables the machine to proceed as follows. Copy the card into the reserved core storage COL1 to COL72 (72 addresses in all) in the standard BCD notation, i.e., a conventional way of representing symbols by numbers, one symbol in each address. Append the number 1 at the last address, viz., COL 72. Search for the arrow sign. If it does not occur, then the line is regarded as ordinary prose, printed out without comment, and the machine begins to study the next card. In particular, the machine stops if the card is blank. If the arrow sign occurs, then the machine marks all symbols before the arrow sign as negative and proceeds to find the earliest logical connective.229
This was a memory-demanding effort (since each new, simplified proposition generated by the rules would also require seventy-two available memory address), but the IBM 704 was still able to prove all two-hundred-twenty theorems from the first three chapters of Principia in three minutes. Wang’s rules and representations for Principia-by- computer introduced yet different new processes and materials than those developed by Newell, Shaw, and Simon. This was a differentreformalism.
Also interesting is that, like Newell, Shaw, and Simon, Wang made use of a tree diagram to represent what proofs looked like in the System P. It is very common, in fact, throughout computer science to represent “searches” of different kinds with a tree structure. However, what the nodes and branches of those trees represent can be very different and can have built into them different kinds of processes, assumptions, motivations. Here is one case where an apparent similarity opens in to high level
Figure 2.1: Tree Diagram of Program P Proof. Wang, “Toward Mechanical Mathemat- ics,” p. 6.
and low level differences in program design and implementation. Recall that Newell, Shaw, and Simon used a tree-structure to represent the “working backwards” and “sub problem chaining” mechanisms that they believed simulated human heuristics in logical theorem proving. As shown in Figure 2.1, Wang too proposed that with his System P, “each proof is a tree structure.”
But in his tree, the “branches” represent different processes and different relation- ships than did the “branches” of Newell, Shaw, and Simon’s trees. Each branch in Newell, Shaw, and Simon’s trees represented the process of “subproblem generation” by which, the computer would generate a set of subproblems (“child nodes”) for some logical proposition (the “parent node”) that, if true, would lead that proposition in one permissible inference step. The branches are supposed to represent a human practice, a human search heuristic, as performed by a computer. In Wang’s tree, the child nodes are produced by the iterative application of rules for breaking apart a given logical proposition into increasingly simple formulas.
The two trees are also “growing” towards different outcomes. Both trees represent a trajectory towards “simplification” - but the way in which is proposition is being
simplified is different in each case. The branches in Wang’s trees approach “atomic for- mulae” - the most basic constituent elements of a given proposition. Moreover, Wang’s branches guarantee this outcome: every well formed proposition can broken down into atomic formulae in the way that Wang’s program proceeds. His trees represent a guar- anteed (though sometimes computationally costly) path to a proof. However, Wang’s branches do not represent a human practice. People would only be able to do this “pulling apart” in simple cases, and would be unlikely to go about actually proving theorems this way. Newell, Shaw, and Simon’s trees, conversely, approach the axioms of propositional logic - the goal is to trace a path from a desired theorem to the axioms which, if possible, would provide a proof. However, there is no guarantee that the ax- ioms can be produced in this way. Newell, Shaw, and Simon did not mind not having a guarantee because practicing human mathematicians seldom do. The two “proof trees” represent different processes and goals and speak to the two quite differentreformalisms
that Newell-Shaw-Simon and Wang enacted on Principia.
After describing the System P in “Toward Mechanical Mathematics,” Wang goes on to speculate how a computer might be used to take on the more complicated theorems from Principia - those from the predicate calculus presented in later chapters. Here he leaves behind the rules for breaking apart statements from the propositional calcu- lus (which would not serve to prove theorems in the undecidable predicate calculus in the same way) and imagines how one might go about using Herbrand’s Theorem. He imagined four “steps” that would suffice to prove a given theorem from the predicate calculus.230 The four steps were a kind of naive or preliminary implementation of the
theorem. Steps one and two served to simplify the statement by eliminating the quan- tifiers and converting it into a particular form and step three related to the production of correlating statements from the propositional calculus. And Step four sounded a lot
like the core of Herbrand’s Theorem:
Step IV: Make all possible substitutions on these [propositions] obtaining results S1, S2, S3, et cetera. The original [statement] is a theorem if and only if there is a truth-functional tautology amongS1,S1_S2,S1_S2_S3, et cetera.231
However, as I’ve said a few times in the chapter so far - it wouldn’t actually be possible for the computer to “make all possible substitutions” in this way because it would often include even more cases than computers could handle, especially in the 1950s. Wang was imagining the possibility of using Herbrand’s theorem, but had yet to devise a way to do so, saying “A program for [this method] has no yet been written. It seems clear that certain auxiliary procedures will be useful in reducing the running time and extending the range of application.”232
Later, in the summer of 1958, Wang worked out some “auxiliary procedures” that enabled him to implement a program capable of proving all of the theorems in predicate logic fromPrincipia. The program was still clearly limited and still faced some of the unavoidable difficulties contained in Herbrand’s Theorem - but it was powerful enough to deal with the theorems inPrincipia and make a real case for the implementation of abstract logical procedures. Those “auxiliary methods” are thereformalism that I take to be most significant in his work. While proving already known theorems - those from
Principia - the Program P also revealed a new property of those propositions pointing to the epistemological significance of implementation: first, the “proofs” produced by the Program P were a new kind of proof that a person could not make. Moreover, Wang identified new knowledge about predicate logic in the behavior of the Program P. New things became known and in new ways in the design, implementation, and execution of the Program P.
231Wang, “Toward Mechanical Mathematics,” p. 14. 232Wang, “Towards Mechanical Mathematics,” p. 15