<<

Published in ArXiv http://arxiv.org/abs/0812.4852

Common sense for concurrency and inconsistency tolerance using Direct LogicTM

Carl Hewitt http://carlhewitt.info

This paper is dedicated to John McCarthy.

Abstract Transitivity of Argumentation ...... 8 Soundness, Faithfulness, and Adequacy ...... 9 Direct is a minimal fix to classical and statistical probability (fuzzy) inference that meets the requirements Housekeeping ...... 9 of large-scale Internet applications (including sense making for Self-refutation ...... 9 natural ) by addressing the following issues: Booleans ...... 10 inconsistency tolerance, contrapositive inference bug, and direct Two-way Deduction ...... 10 argumentation. Boolean equivalences ...... 11 For example, in , (not WeekdayAt5PM) can be Splitting ...... 11 inferred from the premises (not TrafficJam) and Absorption ...... 12 WeekdayAt5PM infers TrafficJam. However, Direct Logic does of Inference in Boolean Direct Logic ...... 12 not sanction concluding (not WeekdayAt5PM) because this Inconsistency tolerance facilitates theory development ..... 12 might be an undesirable inference. The same issue affects Reification and Abstraction ...... 13 probabilistic (fuzzy) inference. Suppose (as above) the probability Roundtripping...... 14 of TrafficJam is 0 and the probability of TrafficJam given Diagonal Argument ...... 15 WeekdayAt5PM is 1. Then the probability of WeekdayAt5PM Logical Fixed Theorem ...... 15 is 0. Varying the probability of TrafficJam doesn‘t change the ...... 16 principle involved because the probability of WeekdayAt5PM Absolute Incompleteness Theorem ...... 16 will always be less than or equal to the probability of TrafficJam. Absolute Inconsistency Theorem ...... 18 Also, in the Tarskian framework of classical mathematical Logical necessity of inconsistency ...... 18 logic, expressing argumentation is indirect and awkward. For Don‘t believe every argument ...... 19 example a classical theory cannot directly represent its own Contributions of Direct Logic...... 20 inference relationship and consequently cannot directly represent Concurrency is the Norm ...... 20 its rules of inference. Nondeterministic computation ...... 20 Gödel and Rosser proved that nontrivial mathematical theories Dijkstra argued against unbounded nondeterminism ...... 22 are incomplete using the assumption of of Peano Arguments for incorporating unbounded nondeterminism 22 Arithmetic. This paper proves a generalization of the Bounded nondeterminism in CSP ...... 23 Gödel/Rosser incompleteness theorem: theories in Direct Logic Unbounded nondeterminism in ActorScript ...... 23 are self-provably incomplete using inconsistency tolerant Bounded Nondeterminism of Direct Logic ...... 24 reasoning. However, there is a further consequence: Since the Computation is not subsumed by logical deduction ...... 24 Gödelian paradoxical proposition is self-provable, theories in Arrival order indeterminacy ...... 25 Direct Logic are self-provably inconsistent! Computational Representation Theorem ...... 26 This paper also proves that Logic Programming is not Scientific Community Metaphor ...... 26 computationally universal in that there are concurrent programs for The admission of logical powerlessness ...... 27 which there is no equivalent in Direct Logic. Consequently the Logic Programming paradigm is strictly less general than the Work to be done ...... 27 Procedural Embedding of Knowledge paradigm. Thus the paper Conclusion ...... 28 Acknowledgements ...... 30 makes use of a concurrent programming language ActorScript™ Bibliography...... 30 (suitable for expressing massive concurrency in large software Appendix. Additional Principles of Direct Logic ...... 39 systems) that is defined meta-circularly in terms of itself. Equality ...... 39 Nondeterministic λ-calculus ...... 39 Contents ...... 39 Introduction ...... 2 Noncompactness ...... 40 Inconsistency is the Norm in Large Software Systems ...... 3 Direct Logic is based on XML ...... 40 Consistency has been the bedrock of ...... 4 Limitations of Classical Mathematical Logic ...... 4 Inconsistency Tolerance ...... 4 Contrapositive Inference Bug ...... 5 Direct Argumentation ...... 5 Direct Logic ...... 6 In the argumentation lies the knowledge ...... 7 Syntax of Direct Logic ...... 7

March 21, 2010 Page 1 of 41

Introduction software systems. The Tarskian framework of “But if the general of Logic are of such a hierarchically stratified theories [Tarski and nature that when presented to the mind they at Vaught 1957] is unsuitable for Software once command assent, wherein consists the Engineering. difficulty of constructing the Science of Logic?” 3. Concurrency is the norm. Logic Programs based [Boole 1853 pg 3] on the inference rules of mathematical logic are not computationally universal because the Our lives are changing: soon we will always be online.1 message order arrival indeterminate computations Because of this change, common sense must adapt to of concurrent programs in open systems cannot be interacting effectively with large software systems just deduced using mathematical logic from sentences as we have previously adapted common sense to new about pre-existing conditions. The fact that technology. Logic should provide foundational computation is not reducible to logical inference principles for common sense reasoning about large has important practical consequences. For software systems. John McCarthy is the principal founding Logicist of example, reasoning used in Semantic Integration Artificial Intelligence although he might decline the cannot be implemented using logical inference title.2 Simply put the Logicist Programme is to express [Hewitt 2008a]. knowledge in logical propositions and to derive information solely by classical logic inferences. As these inconsistent concurrent systems become a Building on the work of many predecessors [Hewitt major part of the environment in which we live, it 2008d], the Logicists Bob Kowalski and Pat Hayes extended the Logicist Programme by attempting to becomes an issue of common sense how to use them encompass programming by using classical effectively. This paper suggests some principles and mathematical logic as a programming language. practices. This paper discusses three challenges to the Logicist The plan of this paper is as follows: Programme: 1. Solve the above problems with First Order 1. Inconsistency is the norm and consequently Logic by introducing a new system called classical logic infers too much, i.e., anything and Direct Logic3 for large software systems. everything. The experience (e.g. Microsoft, the 2. Demonstrate that no Logicist system is US government, IBM, etc.) is that inconsistencies computationally universal (not even Direct (e.g. that can be derived from implementations, Logic even though it is evidently more documentation, and use cases) in large software powerful than any logic system that has been systems are pervasive and despite enormous previously developed). I.e., there are expense have not been eliminated. concurrent programs for which there is no Standard mathematical logic has the problem equivalent Logic Program. that from inconsistent information, any conclusion 3. Discuss the implications of the above results whatsoever can be drawn, e.g., ―The moon is for common sense. made of green cheese.‖ However, our society is increasingly dependent on these large-scale software systems and we need to be able to reason about them. In fact professionals in our society reason about these inconsistent systems all the time. So evidently they are not bound by classical mathematical logic.

2. Direct inference is the norm. Direct inference 3 Direct Logic is called ―direct‖ due to considerations such as the allows theories to directly speak of their own following: inference and to directly reason about  Direct Logic does not incorporate general proof by relationships among the mutually inconsistent contradiction in a theory T. Instead it only allows self- code, specifications, and test cases of large refutation, e.g., (├ ) ├ (├ ). See T T T discussion below. 1  In Direct Logic, theories to speak directly about their If you have doubts, check out the kids and the VPs of major own inferability rather than having to resort to corporations. indirect propositions in a meta-theory.

2  Inference of Φ from Ψ in a theory T (Ψ ├ Φ) is Logicist and are used in this paper for the general T sense pertaining to logic rather than in the restricted technical ―direct‖ in the sense that it does not automatically sense of maintaining that mathematics is in some important sense incorporate the contrapositive i.e., it does not reducible to logic. automatically incorporate (Φ ├ Ψ). See discussion T below.

March 21, 2010 Page 2 of 41

Inconsistency is the Norm in Large Software down to any natural or given base; and when we cease our attempts to drive our piles into a deeper layer, it is not Systems because we have reached bedrock. We simply pause when “… find bugs faster than developers can fix them we are satisfied that they are firm enough to carry the and each fix leads to another bug” structure, at least for the time being. Or perhaps we do --Cusumano & Selby 1995, p. 40 something else more pressing. Under some piles there is no rock. Also some rock does not hold. The development of large software systems and the extreme dependence of our society on these systems have Different communities are responsible for constructing, introduced new phenomena. These systems have pervasive 4 evolving, justifying and maintaining documentation, use inconsistencies among and within the following: cases, and code for large, human-interaction, software  Use cases that express how systems can be used systems. In specific cases any one consideration can trump and tested in practice5 the others. Sometimes debates over inconsistencies among  Documentation that expresses over-arching the parts can become quite heated, e.g., between vendors. justification for systems and their technologies.6 In the long run, after difficult negotiations, in large  Code that expresses implementations of systems software systems, use cases, documentation, and code all change to produce systems with new inconsistencies. Adapting a metaphor7 used by for science, the However, no one knows what they are or where they are bold structure of a large software system rises, as it were, located! above a swamp. It is like a building erected on piles. The piles are driven down from above into the swamp, but not Furthermore there is no evident way to divide up the code, documentation, and use cases into meaningful, consistent microtheories for human-computer interaction. 4 [2010] has defended the traditional paradigm of Organizations such as Microsoft, the US government, proving that program meet specifications and attacked an early and IBM have tens of thousands of employees pouring critical analysis as follows: ―With hindsight of 30 years, it seems over hundreds of millions of lines of documentation, that De Millo, Lipton, and Perlis' [1979] article has proven to be code, and use cases attempting to cope. In the course of rather misguided.‖ However, contrary to Vardi, limitations of the time almost all of this code will interoperate using Web traditional paradigm of proving that program meet specifications Services. A large software system is never done have become much more apparent in the last 30 years—as [Rosenberg 2007]. admitted even by some who had been the most prominent proponents, e.g., [Hoare 2003]. See discussion below. The thinking in almost all scientific and engineering work

5 has been that models (also called theories or microtheories) According to [Hoare 2009]: ―One thing I got spectacularly should be internally consistent, although they could be wrong. I could see that programs were getting larger, and I 8 thought that testing would be an increasingly ineffective way of inconsistent with each other. removing errors from them. I did not realize that the success of tests is that they test the programmer, not the program. Rigorous testing regimes rapidly persuade error-prone programmers (like me) to remove themselves from the profession. Failure in test 8 Indeed some researchers have even gone so far as to construct immediately punishes any lapse in programming concentration, consistency proofs for some small software systems, e.g., [Davis and (just as important) the failure count enables implementers to and Morgenstern 2005] in their system for deriving plausible resist management pressure for premature delivery of unreliable conclusions using classical logical inference for Multi-Agent code. The experience, judgment, and intuition of programmers Systems. In order to carry out the consistency proof of their who have survived the rigors of testing are what make programs system, Davis and Morgenstern make some simplifying of the present day useful, efficient, and (nearly) correct.‖ assumptions:  No two agents can simultaneously make a choice 6 According to [Hoare 2009]: ―Verification [proving that (following [Reiter 2001] ). programs meet specifications] technology can only work against  No two agents can simultaneously send each other errors that have been accurately specified, with as much inconsistent information. accuracy and attention to detail as all other aspects of the  Each agent is individually serial, i.e., each agent can programming task. There will always be a limit at which the execute only one primitive action at a time. engineer judges that the cost of such specification is greater than  There is a global clock time. the benefit that could be obtained from it; and that testing will be  Agents use classical Speech Acts (see [Hewitt 2006b adequate for the purpose, and cheaper. Finally, verification 2007a, 2007c, 2008c]). [proving that programs meet specifications] cannot protect  Knowledge is expressed in first-order logic. against errors in the specification itself.” The above assumptions are not particularly good ones for modern systems (e.g., using Web Services and many-core 7 Popper [1934] section 30. computer architectures). [Hewitt 2007a]

March 21, 2010 Page 3 of 41

Euclid [circa 300BC] in Alexandria, theories were Consistency has been the bedrock of mathematics intuitively supposed to be both consistent and complete. Wilhelm Leibniz, Giuseppe Peano, George Boole, When we risk no contradiction, , Richard Dedekind, , It prompts the tongue to deal in fiction. Charles Peirce, , etc. developed mathematical Gay [1727] logic. However, a crisis occurred with the discovery of the logical paradoxes based on self-reference by Burali-Forti 9 Platonic Ideals were to be perfect, unchanging, and [1897], Cantor [1899], Russell [1903], etc. In response 10 eternal. Beginning with the Hellenistic mathematician Russell [1908] stratified types, [Zermelo 1905, Fränkel 1922, Skolem 1922] stratified sets and [Tarski and Vaught The following conclusions can be drawn for documentation, 1957] stratified logical theories to limit self-reference. use cases, and code of large software systems for human- Gödel [1931] and Rosser [1936] proved that nontrivial computer interaction: mathematical theories are incomplete, i.e., there are  Consistency proofs are impossible for whole systems. propositions which can neither be proved nor disproved.  There are some consistent subtheories but they are typically mathematical. There are some other consistent Consequently, although completeness and unrestricted self- microtheories as well, but they are small, make reference were discarded for general mathematics, the simplistic assumptions, and typically are inconsistent with other such microtheories [Addanki, Cremonini and bedrock of consistency remained. Penberthy 1989]. Nevertheless, the Davis and Morgenstern research programme to prove consistency of microtheories can be valuable for the Limitations of Classical Mathematical Logic theories to which it can be applied. Also some of the techniques As explained below, classical mathematical logic has that they have developed may be able to be used to prove the consistency of the mathematical fragment of Direct Logic and to limitations in that it is not inconsistency tolerant, has the prove inconsistency tolerance (see below in this paper). contrapositive inference bug, and cannot express direct argumentation. 9 ―The world that appears to our senses is in some way defective and filled with error, but there is a more real and perfect realm, Inconsistency Tolerance populated by entities [called ―ideals‖ or ―forms‖] that are eternal, Indeed, even at this stage, I predict a time when changeless, and in some sense paradigmatic for the structure and character of our world. Among the most important of these there will be mathematical investigations of [ideals] (as they are now called, because they are not located in calculi containing contradictions, and people space or time) are Goodness, Beauty, Equality, Bigness, Likeness, will actually be proud of having emancipated Unity, Being, Sameness, Difference, Change, and themselves from consistency. Changelessness. (These terms — “Goodness”, “Beauty”, and so Wittgenstein circa 1930 according to [Priest on — are often capitalized by those who write about , in 2004] order to call attention to their exalted status;…) The most fundamental distinction in Plato's is between the many A limitation of classical logic for inconsistent theories is observable objects that appear beautiful (good, just, unified, that it supports the principle that from an inconsistency equal, big) and the one object that is what Beauty (Goodness, Justice, Unity) really is, from which those many beautiful (good, anything can be inferred, e.g. “The moon is made of green just, unified, equal, big) things receive their names and their cheese.” corresponding characteristics. Nearly every major work of Plato For convenience, I have given the above principle the is, in some way, devoted to or dependent on this distinction. Many name IGOR for Inconsistency in Garbage Out Redux.11 of them explore the ethical and practical consequences of IGOR can be formalized as follows in which a conceiving of reality in this bifurcated way. We are urged to contradiction about a proposition Ω infers any transform our values by taking to heart the greater reality of the proposition:12 [ideals] and the defectiveness of the corporeal world.” [Kraut 2004] Ω, ¬ Ω ├ 

10 Perfection has traditionally been sought in the realm of the spiritual. However, Kurtz and Ketcham [1993] expounded on the thesis of the ―spirituality of imperfection‖ building on the 11 In Latin, the principle is called ex falso quodlibet which means experience and insights of Hebrew prophets, Greek thinkers, that from falsity anything follows. Buddhist sages, Christian disciples and Alcoholics Anonymous. This is spirituality for the ―imperfect because it is real and 12 Using the symbol ├ to mean ―infers in classical mathematical because imperfect has the possibility to be real.‖ As Leonard Cohen said ―There is a crack in everything: that's how the light logic‖ and ⇨ to mean classical mathematical logical implication. gets in.‖ The conception that they present is very far from the Also ⇔ is used for logical equivalence, i.e., ―‖. Platonic Ideals of being perfect, unchanging, and eternal.

March 21, 2010 Page 4 of 41

The IGOR principle of classical logic may not seem very Contraposition also affects statistical probabilistic (fuzzy intuitive! So why is it included in classical logic? logic) systems as follows: Suppose (as above)  Proof by contradiction: (├ ,  ) ⇨ (├ ) P(TrafficJam | Observe[WeekdayAt5PM]) = 118 which can be justified in classical logic on the P(TrafficJam) = 0 grounds that if Ψ infers a contradiction in a consistent then 퐏 퐎퐛퐬퐞퐫퐯퐞[퐖퐞퐞퐤퐝퐚퐲퐀퐭ퟓ퐏퐌] 퐓퐫퐚퐟퐟퐢퐜퐉퐚퐦 theory then Ψ must be false. In an inconsistent P(Observe[WeekdayAt5PM])= theory, proof by contradiction leads to explosion by 퐏 퐓퐫퐚퐟퐟퐢퐜퐉퐚퐦 퐎퐛퐬퐞퐫퐯퐞[퐖퐞퐞퐤퐝퐚퐲퐀퐭ퟓ퐏퐌] ) =019 the following derivation in classical logic by a which Thus contraposition is built into probabilistic () a contradiction about P infers any proposition : systems and consequently unwarranted inferences can be P, ¬P ├ ¬ ├ P, ¬P ├ (¬ ¬) ├  made.20  Disjunction introduction: (Ψ ├ (ΨΦ)) which in classical logic would say that if Ψ is true then Direct Argumentation 13 (ΨΦ)) is true regardless of whether Φ is true. In Integrity is when what you say, what an inconsistent theory, disjunction introduction leads you do, what you think, and who you to explosion via the following derivation in classical are all come from the same place. logic in which a contraction about P infers any Madelyn Griffith-haynie proposition : P,¬ P ├ (P),¬ P ├  In the Tarskian framework of classical mathematical logic, a theory cannot directly express argumentation.21 For example a classical theory cannot directly represent its own Contrapositive Inference Bug inference relationship and consequently cannot directly You can use all the quantitative data you represent its rules of inference. This kind of restriction has can get, but you still have to distrust it and been challenged by [Feferman 1984a]: use your own intelligence and judgment. …natural language abounds with directly or Alvin Toffler indirectly self-referential yet apparently harmless expressions—all of which are excluded from the Direct inference is used in to directly infer conclusions Tarskian framework. from premises. For example, suppose that we have Direct Argumentation means that ├ in a proposition

A1. Observe[WeekdayAt5PM] ├ TrafficJam14 22 means inference. For example, ├  and ├  infer

A2. ├ TrafficJam15

18 In classical logic, Observe[WeekdayAt5PM] is inferred from The probability is 1 for TrafficJam given A1 and A2 above.16 Consequently, the contrapositive Observe[WeekdayAt5PM]. inference bug comes into play even in the absence of overt 19 17 Varying P(TrafficJam) doesn't change the principle involved inconsistency. because P(Observe[WeekdayAt5PM]) ≦ P(TrafficJam)

20 This example illustrates that the choice of how to incorporate 13 Disjunction introduction follows from the principle of measurements into statistics can effectively determine the model absorption that Ψ is equivalent to Ψ(ΨΦ). Consequently, in being used. In this particular case, the way that measurements Direct Logic absorption must be limited to inferring Ψ from were taken did not happen to take into account things like Ψ(ΨΦ). holidays and severe snow storms. This point was largely missed in [Anderson 2008]. which stated 14 Observing weekday at 5PM infers a traffic jam “Correlation is enough.” We can stop looking for

15 models. We can analyze the data without hypotheses No traffic jam about what it might show. We can throw the numbers

16 into the biggest computing clusters the world has ever Note that contrapositive for inference should not be confused seen and let statistical algorithms find patterns where with contrapositive for implication because A1 is different from science cannot. (emphasis added) the following:├ Observe[WeekdayAt5PM] ⇨ TrafficJam 21 where ⇨ is implication. See discussion below. Instead resort is usually made to meta-theory stratification, reification or provability logic. See below. 17 Many in the nonmonotonic community have not included 22 Cf. ―on the ordinary notion of proof, it is compelling just contraposition in rules, e.g., [Reiter 1980; Prakken and Sartor because, presented with it, we cannot resist the passage 1996; Caminda 2008]. According to [Ginsberg 1994 pg. 16]: ―although almost all of the symbolic approaches to nonmonotonic from premises to conclusion without being unfaithful to the reasoning do allow for the strengthening of the antecedents of meanings we have already given to the expressions default rules, many of them do not sanction contraposition of employed in it.‖ [Dummett 1973] these rules.‖

March 21, 2010 Page 5 of 41

├ , which in Direct Logic can be expressed as follows  Provide a foundation for reasoning about the by Direct Argumentation: mutually inconsistent implementation, specifications, and test cases large software systems. , (├ ) ├   Formalize a notion of “direct” inference for

The above proposition fulfills the demand of the Tortoise reasoning about inconsistent information that  Support all “natural” deductive inference [Fitch Whatever Logic is good enough to tell me is worth 1952; Gentzen 1935] with the exception of general writing down. Proof by Contradiction and Disjunction 25 in the famous paradox in ―What the Tortoise said to Introduction. Achilles.‖ Carroll [1895]  Support all the usual Boolean equivalences among propositions with exception of absorption, which must be restricted one way to avoid IGOR. Direct Logic  Support roundtripping among code, documentation, The proof of the pudding is the eating. and use cases of large software systems. (See Cervantes [1605] in Don Quixote. Part 2. Chap. 24 discussion below.)  Provide increased safety in reasoning using inconsistent information. Direct Logic is a minimal fix to make

mathematical logic and statistical probability Direct Logic supports direct inference26 (├ ) for an (fuzzy) inference adequate for the T Cervantes [1605] in Don Quixote. Part 2. Chap. 24 inconsistent theory . Consequently, ├ does not support requirements of large-scale Internet T T applications (including sense making for either general proof by contradiction or disjunction

natural language). introduction. However, ├ does support all other rules of T 27 Direct Logic23 is an inconsistency tolerant24 inference [Fitch 1952; Gentzen 1935]. Consequently, Direct Logic is well suited for practical system for reasoning about large software systems with the 28 following goals: reasoning about large software systems. The theories of Direct Logic are ―open‖ in the sense of open-

23 ended schematic axiomatic systems [Feferman 2007b]. The Direct Logic is distinct from the Direct Predicate Calculus language of a theory can include any vocabulary in which its [Ketonen and Weyhrauch 1984]. axioms may be applied, i.e., it is not restricted to a specific

vocabulary fixed in advance (or at any other time). Indeed a 24 (name coined by Francisco Miró Quesada in 1976 [Priest 2002, pg. 288]) is a special form of inconsistency tolerant logic in which an inconsistency does not infer every Paraconsistent have not been satisfactory for the purposes proposition. Unfortunately, paraconsistency is a very weak of Software Engineering because of their many seemingly property. For example, adding the following rule: arbitrary variants and their idiosyncratic inference rules and Ψ, ¬Ψ ├ GreenCheese[Moon] notation. For example (according to Priest [2006]), most preserves paraconsistency because not all propositions are paraconsistent and relevance logics rule out Disjunctive inferred from an inconsistency. Syllogism ((ΦΨ), ¬Φ ├ Ψ). However, Disjunctive Syllogism The most extreme form of paraconsistent mathematics is seems entirely natural for use in Software Engineering! dialetheism [Priest and Routley 1989] which maintains that there are true inconsistencies in mathematics itself e.g., the Liar 25 In this respect, Direct Logic differs from Quasi-Classical Logic Paradox. However, mathematicians (starting with Euclid) have [Besnard and Hunter 1995] for applications in information worked very hard to make their theories consistent and systems, which does include Disjunction Introduction. inconsistencies have not been an issue for most working mathematicians. As a result: 26 Direct inference is defined differently in this paper from  Since inconsistency was not an issue, mathematical logic probability theory [Levy 1977, Kyburg and Teng 2001], which focused on the issue of and a of truth refers to ―direct inference‖ of frequency in a reference class (the was developed [Dedekind 1888, Löwenheim 1915, most specific class with suitable frequency knowledge) from Skolem 1920, Gödel 1930, Tarski and Vaught 1957, which other probabilities are derived. Hodges 2006]. More recently there has been work on the

development of an unstratified logic of truth [Leitgeb 27 2007, Feferman 2007a]. But with the modification from classical natural deduction that  Paraconsistent logic somewhat languished for lack of Ψ├ Φ does not automatically mean that ├ (Ψ⇨Φ). See T T subject matter. The lack of subject matter resulted in discussion of two-way deduction theorem below. paraconsistent systems that were for the most part so awkward as to be unused for mathematical practice. 28 In this respect, Direct Logic differs from previous Consequently mainstream logicians and mathematicians have inconsistency tolerant logics, which had inference rules that made tended to shy away from paraconsistency. them intractable for use with large software systems.

March 21, 2010 Page 6 of 41

theory can be an open system can receive new information at (implication), and ⇔ (bi-implication) are any time [Hewitt 1991, Cellucci 1992]. propositions.  Atomic names are expressions.32 Also numbers are In the argumentation lies the knowledge expressions. Testimony is like an arrow shot from a  If x1, …, and xn are variables and  is a proposition, long-bow; its force depends on the then the following is a proposition that says ―for all x1, strength of the hand that draws it. But …, and xn:  holds: argument is like an arrow from a cross- x1; …; xn :  bow, which has equal force if drawn by a  If F is an expression and E1, …, En are expressions, child or a man. Charles Boyle then F(E , …, E ) is an expression. 1 n Partly in reaction to Popper29, Lakatos [1967, §2]) calls the  If X1, …, Xn are identifiers and E is an expression, view below Euclidean:30 then (λ(X1, …, Xn) E) is an expression. “Classical epistemology has for two thousand years  If E1, E2, and E3 are expressions, then the following modeled its ideal of a theory, whether scientific or are expressions: mathematical, on its conception of Euclidean if E1 then E2 else E3 . The ideal theory is a deductive system with E1 = = E2 (E1 and E2 are the same Actor) an indubitable truth-injection at the top (a finite  If E1, …, En are expressions, then [E1, …, En] (the conjunction of axioms)—so that truth, flowing down sequence of E1, …, and En) is an expression from the top through the safe truth-preserving  If E1 and E2 are expressions, [E1 E2] (the sequence channels of valid inferences, inundates the whole of E1 followed by the elements of the sequence E2) is system.” an expression  If X is a variable, E is an expression, and  is a Since truth is out the window for inconsistent theories, we proposition, then {XE | } (the set of all X in E such have the following reformulation: that ) is an expression. Inference in a theory T (├ ) carries argument  If E1 and E2 are expressions, then E1=E2, E1E2 and T from antecedents to consequents in chains of E1E2 are propositions inference.  If P is an expression and E1, …, En are expressions, then P[E1, …, En] is a proposition. Syntax of Direct Logic  If E1 and E2 are expressions, then E1  E2 (E1 can reduce to E in the nondeterministic λ-calculus) is a The aims of logic should be the 2 proposition. creation of ―a unified conceptual  If E is an expression, then E (E always converges in apparatus which would supply a the nondeterministic λ-calculus) is a proposition. common basis for the whole of human  If E is an expression, then E (E is irreducible in the knowledge.” [Tarski 1940] nondeterministic λ-calculus) is a proposition. The syntax of Direct Logic is defined by expressions31 and  If E1 and E2 are expressions, then E1E2 (E1 can propositions as defined below: converge to E2 in the nondeterministic λ-calculus) is a proposition.  If  and  are propositions then,  (),  If E is an expression, then  E (E reduces to exactly 1  (conjunction),  (disjunction), ⇨ 1 expression in the nondeterministic λ-calculus) is a proposition.  If T is an expression and  is a proposition, then 29 Proof by contradiction has played an important role in science ⊢  ( can be inferred in ) is a proposition. ⊬ is (emphasized by Karl Popper [1962]) as formulated in his T T principle of refutation which in its most stark form is as follows: the negation of ⊢. If ├  Ob for some observation Ob, then it can be T concluded that T is refuted (in a theory called Popper ), i.e., ├  Popper T See Suppe [1977] for further discussion.

30 although there is no claim concerning Euclid‘s own orientation 32 For example, Fred and x are atomic names. An atomic name is a constant, variable or identifier. Variables are universally 31 Notionally, expressions take their values from an extension to quantified and identifiers are bound in λ- expressions. As a XML (see appendix). convention in this paper, the first letter of a constant will be capitalized.

March 21, 2010 Page 7 of 41

 If T is an expression and 1, …, k are propositions Transitivity is perhaps the most fundamental principle of inference.36 and 1, …, n are propositions then

37 1, …, k ⊢ 1, …, n is a proposition that says T Transitivity of Argumentation: ( , … and  ) infer ( , …, and  ) in 1 k 1 n T. (├ ), (├ ) ├ (├ )  If is an expression, E is an expression and  is a T T T T T  argumentation is transitive proposition, then E ╟  (E is an argument for  in ) T T is a proposition. In Direct Logic, transitivity gives rise to Detachment (a  If s is a sentence (in XML33). then  s  (the version of for inference) as follows: abstraction of s) is a proposition. If p is a phrase (in , (├  ) ├  T T XML), then 34 McGee [1985] has challenged modus ponens using an  p (the abstraction of p) is an expression. example that can be most simply formalized in Direct  If  is a proposition, then  (the reification of ) is Logic as follows:38 a sentence (in XML). If E is an expression, then RepublicanWillWin├ (ReaganWillWin├ AndersonWillWin)39  E  (the reification of E) is a phrase (in XML). McGee McGee ├ RepublicanWillWin40 McGee In general, the theories of Direct Logic are inconsistent and therefore propositions cannot be consistently labeled with From the above, in Direct Logic it follows that: truth values. ReaganWillWin ├ AndersonWillWin Note that Direct Logic does not have quantifiers, but McGee universally quantified variables are allowed in top level 35 McGee challenged the reasonableness of the above propositions called statements. conclusion on the grounds that. intuitively, the proper inference is that if Reagan will not win, then Transitivity of Argumentation AndersonWillWin because Carter (the Democratic Scientist and engineers speak in the name of candidate) will win. However, in theory McGee, it is new allies that they have shaped and enrolled; reasonable to infer AndersonWillWin from ReaganWillWin representatives among other representatives, because RepublicanWillWin holds in McGee. they add these unexpected resources to tip the balance of force in their favor. Latour [1987] Second Principle

33 has standardized on XML for the (textual) representation of tree structures.

34 For example, λ(x)  x=0 is an expression. In this respect

Direct Logic differs from Lambda Logic [Beeson 2004], which 36 does not have abstraction and reification. [Patel-Schneider 1985] developed a logical system without transitivity in order to make inference recursively decidable. 35 Consider following statement S: 37 The fundamental principles of Direct Logic are placed in boxes p,qHumans: Mortal[ACommonAncestor(p, q)] like this one and they are not independent. where the syntax has been extended in the obvious way to allow constraints on variables. 38 McGee phrased his argument in terms of implication which in An instantiation of S can be specified by supplying values for Direct Logic (see following discussion in this paper) would be as follows: variables. For example S[Socrates, Plato] is the proposition ├ RepublicanWillWin⇨ (ReaganWillWin⇨AndersonWillWin) Socrates,PlatoHumans⇨ McGee ├ RepublicanWillWin Mortal[ACommonAncestor(Socrates, Plato)] McGee Note that care must be taken in forming the negation of However, this makes no essential difference because, in Direct statements. Logic, it still follows that Direct Logic directly incorporates Skolemization unlike Lambda ├ (ReaganWillWin ⇨ AndersonWillWin) McGee Logic [Beeson 2004], classical first-order set theory, etc. For 39 example the negation of S is the proposition In the election, there were only two Republican candidates: Reagan and Anderson. Consequently, in theory McGee ,from (PS,QSHumans ⇨ Mortal[ACommonAncestor(PS QS)]) RepublicanWillWin, it follows that AndersonWillWin can be where PS and QS are Skolem constants. See the axiomatization of inferred from ReaganWillWin. set theory in the first appendix for further examples of the use of 40 Skolem functions in Direct Logic. RepublicanWillWin holds in theory McGee .

March 21, 2010 Page 8 of 41

Reiteration: ├   a proposition infers itself Soundness, Faithfulness, and Adequacy T Exchange: (,├ ) ┤├ (,├ ) Soundness in Direct Logic is the principle that the rules of T T T (├ ,) ┤├ (├ ,) Direct Logic preserve arguments, i.e., T T T  the order of propositions are written does not matter

Residuation: (,├ ) ┤├ (├ (├ )) Soundness of Argumentation: T T T T  hypotheses may be freely introduced and discharged (├ ) ├ ((├ ) ├ (├ )) Monotonicity: (├ ) ├ (,  ├ ) T T T T T T T T  when an argument holds and furthermore the  an argument remains if new information is added antecedent of the argument holds, infer that the Dropping: (├ ,) ├ (├ ) T T T consequence of the argument holds.  an argument remains if extra conclusions are dropped Adequacy is the property that a proposition holding a Argument combination:((├ ), (├ )) ┤├ (├ ,) T T T T theory infers that there is an argument for the proposition  arguments can be combined in the theory. i.e., Variable Elimination: (x: P[x]) ├ P[E] T Adequacy of Argumentation:  a universally quantified variable of a statement can be instantiated with any expression E (taking care that none of (├ ) ├ (├ (├ )) the variables in E are captured). T T T T  when an inference holds, infer that there is an Variable Introduction: Let Z be a new constant argument that the inference holds (├ P[Z] ) ├ (├ x: P[x]) T T T  inferring a statement with a universally quantified Faithfulness is the property that when a theory holds that variable is equivalent to inferring the statement with a newly introduced constant substituted for the variable an argument holds in the theory, then the theory faithfully holds the argument, i.e., Self-refutation Faithfulness of Argumentation: “Contrariwise,” continued Tweedledee, “if it was so, (├ (├ )) ├ (├ ) it might be; and if it were so, it would be; but as it T T T T  When it holds that an argument holds, infer that isn't, it ain't. That's logic.” Carroll [1871] the argument holds. Direct Logic supports self-refutation, which is a restricted Housekeeping version of proof by contradiction as follows:

Logic merely sanctions the conquests of the intuition. Self Infers Opposite: Jacques Hadamard (quoted in Kline [1972]) (├ ) ├ (├ ) T T T Direct Logic has the following housekeeping rules:41 when a proposition infers its own negation, its negation holds Self Infers Argument for Opposite: (├ (├ )) ├ (├ ) when a TpropositionT infers Tits own Tnegation holds, its negation holds Argument for Self Infers Opposite: ((├ )├ ) ├ (⊬ ) when Tthat a propositionT holdsT infersT the negation of the proposition, the proposition does not hold Argument for Self Infers Argument for Opposite: ((├ )├ (├ )) ├ (⊬ ) T T T T T when that a proposition holds infers the negation 41 Nontriviality principles have also been proposed as extensions of the proposition holds, the proposition does to Direct Logic including the following: not hold

 Direct Nontriviality: () ├ (├ ) T T Self-refutation can sometimes do inferences that are  the negation of a proposition infers that it cannot be 42 inferred traditionally done using proof by contradiction. For  Meta Nontriviality: (├ ) ├ (├ ) T T T  the inference of the negation of a proposition infers that the proposition cannot be inferred. 42 Provability logic [Gödel 1931; Hilbert and Bernays 1939; Löb 1955; Verbrugge 2003] is an approach for expressing some

March 21, 2010 Page 9 of 41

example the proof of the incompleteness of theories in this Direct Logic defines disjunction () in terms of paper makes use of Self-refutation. conjunction and negation in a fairly natural way as follows:

Booleans Disjunction in terms of The Booleans43 in Direct Logic are as close to classical Conjunction and Negation: logic as possible.  ┤├ () T Negation We could not even think „being‟ without Since Direct Logic aims to preserve standard Boolean a double negation: being must be properties, we have the following principle: thought as the negation of negation of being. Conjunction infers Disjunction: Paul Tillich [2000] () ├ () The following is a fundamental principle of Direct Logic:44 T Double Negation Elimination: Implication   ┤├ 45  T Lakatos characterizes his own view as quasi-empirical: “Whether a deductive system is Euclidean or quasi- Other fundamental principles for negation are found in the empirical is decided by the pattern of flow next sections. in the system. The system is Euclidean if the characteristic flow is the transmission of truth from Conjunction and Disjunction the set of axioms „downwards‟ to the rest of the Direct Logic tries to be as close to classical logic as system—logic here is an organon of proof; it is possible in making use of natural inference, e.g., ―natural quasi-empirical if the characteristic flow is deduction‖. Consequently, we have the following retransmission of falsity from the false basic equivalences for juxtaposition (comma): statements „upwards‟ towards the „hypothesis‟—logic here is an organon of criticism.” Conjunction in terms of Juxtaposition (comma): Direct Logic defines implication (⇨) in terms of (, ├ ) ┤├ ()├  conjunction and negation in a fairly natural way as follows: T T T (├ , ) ┤├ ├ () T T T Implication in terms of Conjunction and Negation: ⇨ ┤├ (  ) T argumentation in the Tarskian framework. Provability logic differs from Direct Logic in many ways including the following: Two-way Deduction Theorem  Provability logic is not inconsistency tolerant In classical logic there is a strong connection between  Provability logic cannot express its own provability deduction and implication through the Classical Deduction relation ├ Theorem: ProvablityLogic Albert Visser [private communication] has kindly pointed out (├(Ψ⇨Φ)) ┫├ (Ψ├ Φ) that all the principles of self-refutation (except Self Infers Opposite) are not valid in classical Provability Logic when However, the classical deduction theorem does not hold in 46 (├ ) is interpreted as Prov( ⇨  ). general for theories of Direct Logic. Instead, Direct Logic has a Two-way Deduction Theorem that is explained 43  (negation),  (conjunction),  (disjunction), and  below. (implication).

44 Intuitionistic logic has a limited form of this principle as follows:    ┤├ . Unfortunately, 46 Intuitionism For example, in the empty theory ⊥ (that has no axioms Intuitionism has IGOR: , ¬  ├ .

Intuitionism beyond those of Direct Logic),Q├ (P P) but ⊬ (Q ⇨ ⊥ ⊥ (P P)). 45  ┤├  means  ├  and  ├  T T T

March 21, 2010 Page 10 of 41

Lemma (├ (⇨)) ├ ((├ )  (├ )) T T T T Boolean equivalences Proof: Suppose ├ (⇨) T Theorem: The following usual Boolean equivalences hold: Therefore ├ () T By Disjunctive Syllogism, it follows that ├  and T Double Negation:  ┤├  ├ . T T Idempotence of :  ┤├  What about the converse of the above theorem? T Commutativity of :  ┤├  Lemma ((├ )  (├ )) ├ (├ (⇨)) T T T T T Proof: Suppose ├  and ├  Associativity of :   () ┤├ ()  T T T By the principle of Simple Self-refutation, to prove Distributivity of  over : ├ (⇨), it is sufficient to prove the following: T   () ┤├ ()  () (⇨)├ (⇨) T T De Morgan for : () ┤├   Thus it is sufficient to prove ()├ () T T But ()├ () ├ () by the Idempotence of :  ┤├  T T T suppositions above and the principle that Conjunction Commutativity of :  ┤├  Infers Disjunction. T Associativity of :   () ┤├ ()   T Putting the above two together we have the Two- Distributivity of  over : Way Deduction Theorem for Implication:   () ┤├ () () (├ (⇨)) ┫├ ((├ )  (├ )) T T T T T De Morgan for : () ┤├  Consequently: T Implication as Disjunction: ⇨ ┤├  In Direct Logic, implication carries argument T both ways between antecedents and consequents. Contrapositive: ⇨ ┤├ ⇨ Thus, in Direct Logic, implication (⇨), rather than T inference (├ ), supports Lakatos quasi-empiricism. T Splitting 48 ―Taking the principle of excluded middle from The following corollaries follow: the mathematician would be the same, say, as * Two-Way Deduction Theorem for Disjunction:47 proscribing the telescope to the astronomer …” ├ ()) ┫├ ((├ )  (├ )) T T T T Hilbert [1920] * Transitivity of Implication: (⇨), (⇨) ├ (⇨) Direct Logic has the principle of Splitting that can be T expressed as follows: Proof: Follows immediately from the Two-Way Deduction Theorem for Implication by chaining Splitting: in both directions for . (), (├ ), (├ ) ├  * Reflexivity of Implication: ├ (⇨) T T T T Proof: Follows immediately from ├  and T Splitting is very useful in reasoning by cases. ├  using the Two-Way Deduction T Theorem. Splitting by Negation: ├ () Theorem. T Proof: Follows immediately from Reflexivity of Implication, the definition of implication, De Morgan, and Double Negation Elimination.

48 47 which explains that  ⊬ () in general because ―Excluded middle‖ is the traditional name for Splitting by T Negation (see below). ⊬ ( ⊢ ( ⊢ )) T T T

March 21, 2010 Page 11 of 41

Absorption For example: Direct Logic supports the part of Absorption that does not lead to IGOR: ⊬⊥ ⇨ (⇨) ├⊥ (├⊥)

⊬⊥ (⇨ ) ⇨ (⇨ (⇨ )) Absorption of :  () ├  (⇨ ) ├⊥ (⇨ (⇨ )) T Absorption of :   () ├  ⊬⊥  ⇨ () ├⊥ () T ⊬⊥(  ( )) ⇨    ( ) ├⊥  Decidability of Inference in Boolean Direct Logic All “philosophically interesting” ⊬⊥ (  ( )) ⇨    () ├⊥  propositional49 calculi for which the decision problem has been solved ⊬⊥ (  ()) ⇨    () ├⊥  have been found to be decidable Harrop [1965] Inconsistency tolerance facilitates theory Boolean Direct Logic is an important special case in which development the propositions are restricted to being composed of atomic proposition50 connected by negation, conjunction, A little inaccuracy sometimes disjunction, and implication. saves tons of explanation. Saki in ―The Square Egg‖ In Boolean Direct Logic, to decide whether 1├⊥ 2, 51 first put 1 and 2 in conjunctive normal form and apply Inconsistency tolerant theories can be easier to develop following transformation on 2: than classical theories because perfect absence of inconsistency is not required. In case of inconsistency, ├⊥ 1, 2  (├⊥ 1)  (├⊥ 2)

there will be some propositions that can be both proved and disproved, i.e., there will be arguments both for and For each conjunct 12 in 1 use the following transformation: against the propositions. A classic case of inconsistency occurs in the novel , (12)├⊥   ,(1 ├⊥2),(2 ├⊥1) ├⊥  Catch-22 [Heller 1995] which states that a person ―would be crazy to fly more missions and sane if he didn't, but if he For each conjunct 12 in 2 use the following was sane he had to fly them. If he flew them he was crazy transformation: and didn't have to; but if he didn't want to he was sane and had to. Yossarian was moved very deeply by the absolute ├⊥(12)  (,1├⊥ 2)(,2├⊥ 1) simplicity of this clause of Catch-22 and let out a Thus the decision problem for inferences in Boolean respectful whistle. „That's some catch, that Catch-22,‟ he Direct Logic reduces to deciding problems of the form observed.‖

├⊥  where  is a list consisting of literals and literal inferences52 and  is a literal. These subproblems are decided using splitting on ├⊥ () for each literal using:

├⊥   (, ├⊥ )  (, ├⊥ )

49 i.e., having only Boolean connectives

50 An atomic proposition is just an identifier like P or Q.

51 A proposition is in conjunctive normal form when it is the conjunction of clauses, where each clause is a disjunction of literals

52 A literal inference is a proposition of the form ├⊥ , where  is a list of literals and  is a literal.

March 21, 2010 Page 12 of 41

In the spirit of Catch-22, consider the follow Reification and Abstraction axiomization of the above: Direct Logic distinguishes between concrete sentences in XML and abstract propositions.54 Software Engineering 1. p: AbleToFly[p], Fly[p] ├ Sane[p] Catch-22 requires that it must be easy to construct abstract  axiom propositions from concrete sentences.55 Direct Logic 2. p: Sane[p] ├ Obligated[p, Fly]  axiom provides abstraction for this purpose as follows: Catch-22 Every sentence s in XML has an abstraction56 3. p: Sane[p],ObligatedToFly[p]├ Fly[p] 57 Catch-22 that is the proposition given by s.  axiom 4. ├ AbleToFly[Yossarian]  axiom s,tSentences: s=t ⇨ ( s ⇔ t ) Catch-22 5. Fly[Yossarian] ├ Fly[Yossarian] Catch-22  from 1 through 4 Abstraction can be used to formally self-express important properties of Direct Logic such as the following: 6. ├ Fly[Yossarian] Catch-22  from 5 using Self Infers Opposite The principle Inferences have Arguments 7. p: Fly[p] ├ Crazy[p]  axiom Catch-22 says that  is inferred in theory T if and only 8. p: Crazy[p] ├ ObligatedToFly[p]  axiom Catch-22 if  has a argument  that establishes it in T, 9. p: Sane[p], ObligatedToFly[p] ├ Fly[p] Catch-22 i.e. ╟   axiom T 10. ├ Sane[Yossarian]  axiom s,tSentences: ├ s  AnArgument (s) ╟ s Catch-22 T T T where AnArgument is a choice function that 11. ├ Fly[Yossarian]  from 6 through 10 T Catch-22 chooses an argument for s 58 Thus there is an inconsistency in the above theory Furthermore, there is a linear recursive ArgumentChecker such that: Catch-22 in that: T 6. ├ Fly[Yossarian] (xArguments; sSentences: Catch-22 11. ├  Fly[Yossarian] ArgumentChecker (x, s)=1 ⇔ x ╟ s) Catch-22 T T

Various objections can be made against the above Conversely, every proposition  has a reification59 (given 53 axiomization of the theory Catch-22. However, by 60) that is a sentence in XML.61 Catch-22 illustrates several important points:

54  Even a very simple microtheory can engender This is reminiscent of the Platonic divide (but without the inconsistency moralizing). Gödel thought that ―Classes and concepts may,  Inconsistency tolerance facilitates theory however, also be conceived as real objects…existing independently of our definitions and constructions.‖ [Gödel 1944 development because a single inconsistency is pg 456] not disastrous.  Direct Logic supports fine grained reasoning 55 Analogous the requirement that it must be easy to construct because inference does not necessarily carry executable code from concrete programs (text). argument in the contrapositive direction. For example, the general principle ―A person who 56 For example, if s and t are sentences in XML, then flies is crazy.‖ (i.e., Fly[p] ├ Crazy[p] ) does Catch-22 ├  s t  ⇔ (  s    t  ) not support the interference of Fly[Yossarian] T Cf. Sieg and Field [2005] on abstraction. from Crazy[Yossarian]. E.g., it might be the case Fly[Yossarian] 57 that even though it infers Heuristic: Think of the ―elevator bars‖ . . .  around s as Crazy[Yossarian] contradicting ―raising‖ the concrete sentence s ―up‖ into the abstract Crazy[Yossarian]. proposition s. The elevator bar heuristics are due to Fanya S.  Even though the theory Catch-22 is Montalvo. inconsistent, it is not meaningless. 58 I.e., executes in a time proportional to the size of its input.

53 Both Crazy[Yossarian] and Sane[Yossarian] can be inferred 59 Reifications are in some ways analogous to Gödel numbers from the axiomatization, but this per se is not inconsistent. [Gödel 1931].

March 21, 2010 Page 13 of 41

Direct Logic makes use of the following: The sections below address issues concerning the use of Logical Roundtripping Principle:63 abstraction and reification. If  is Admissible for T then: Roundtripping ├ (      ⇔ ) T To thine own self be true. And it must follow, as the night the day, Of course, the above criterion begs the questions of which Thou canst not then be false to any man. propositions are Admissible in T! A proposed answer is Shakespeare in-―Hamlet‖ Act 1, scene iii. provided by the following:

Roundtripping is the process of going back and forth using 62 The Criterion of Admissibility for Direct abstraction and reification. Roundtripping is becoming Logic is64: increasingly important in software engineering. e.g.,  The execution of code can be dynamically checked  is Admissible for T if and only if against its documentation. Also Web Services can () ├ (├ ) be dynamically searched for and invoked on the T T I.e., the Criterion of Admissibility is that a basis of their documentation.  Use cases can be inferred by specialization of proposition is Admissible for a theory T if and only documentation and from code by automatic test if its negation infers in T that its negation can be generators and by model checking. inferred in T  Code can be generated by inference from documentation and by generalization from use In other words a proposition is Admissible when its cases. negation infers that there is an argument for its negation holding.65 Abstraction and reification are needed for large software systems so that that documentation, use 63 cases, and code can mutually speak about what has Logical roundtripping says if  is Admissible for T then its been said and its . reification has enough information that abstracting back is logically equivalent to  in T. Roundtripping for the nondeterministic λ-calculus is discussed in the appendix.

64 Note that there is an asymmetry in the definition of Admissibility with respect to negation. In general, it does not follow that  is admissible for T just because  is admissible 60 Heuristic: Think of the ―elevator bars‖ . . .  around  as for T. The asymmetry in Admissibility is analogous to the ―lowering‖ the abstract proposition  ―down‖ into the concrete asymmetry in the Criterion of Refutability [Popper 1962]. For sentence  that is its reification in XML. example the sentence “There are no green swans.” is readily The reifications of a propositions can be quite complex because refuted by the observation of a green swan. However, the of various optimizations that are used in the implementations of negation is not so readily refuted. propositions. Also note that admissibility is different from the following: ├ ( ⇨ ├ ) T T 61 Note that, if s is a sentence, then in general   s    s. which is equivalent to the following: ├ ((├ ) ⇨ ) T T 62 To avoid inconsistencies in mathematics (e.g., Liar Paradox, The above statement illustrates a problem with the traditional Russell‟s Paradox, Curry‟s Paradox, etc.), some restrictions are concept of “Negation as Failure” that was first noted in needed around logical roundtripping. The question is how to do it connection with the development of Planner, namely, “The [Feferman 1984a, Restall 2006].62 dumber the system, the more it can prove!” See the discussion The approach which is currently standard in mathematics is the on the limitations of Logic Programming. Tarskian framework of assuming that there is a hierarchy of 65 metatheories in which the of each theory is formalized Admissibility is a generalization of the property of being in its metatheory [Tarski and Vaught 1957]. GoldbachLike (emphasized by [Franz 2005]) which is defined to Large software systems likewise abound with roundtripping in be all sentences s of arithmetic (ℕ) such that reasoning about their use cases, documentation, and code that are fExpressions s=nω f(n)  BoundedQuantification(f) excluded by the Tarskian framework. Consequently the where BoundedQuantification(f) means that all the assumption of hierarchical metatheories is not very suitable for quantifiers in f are bounded, i.e., all quantifiers are of one of Software Engineering. the following two forms: 1. variableexpression…

March 21, 2010 Page 14 of 41

.f(1)1 f(1)2 f(1)3 … f(1)i …

Theorem. If  and  are Admissible for T, then  is .f(2)1 f(2)2 f(2)3 … f(2)i …

Admissible for T. .f(3)1 f(3)2 f(3)3 … f(3)i … Proof. Suppose  and  are Admissible for T, i.e., … () ├ (├ ) and () ├ (├ ). The goal is .f(i)1 f(i)2 f(i)3 … f(i)i … T T T T … to prove () ├ (├ ()), which is T T equivalent to () ├ (├ ()), which T T Define Diagonal as follows: follows immediately from the hypothesis. Diagonal ≡ Diagonalize(f) Theorem. If  and  are Admissible for T, then ⇨ 66 where Diagonalize(g) ≡ λ(i) g(i)i is Admissible for T. where g(i) is the complement of g(i) Proof. (⇨)  ( ). Therefore the theorem i i  follows from the previous theorem by Double Negation Diagonal can be diagrammed as follows: Elimination. .f(1) f(1) f(1) … f(1) … The motivation for Admissibility builds on the 1 2 3 i of the Actor model of computation .f(2)1 f(2)2 f(2)3 … f(2)i … which were first developed in [Clinger 1981]. .f(3)1 f(3)2 f(3)3 … f(3)i … Subsequently [Hewitt 2006] developed the …

TimedDiagrams model with the Computational .f(i)1 f(i)2 f(i)3 … f(i)i … Representation Theorem that is discussed later in this … paper. Therefore Diagonal is a not enumerated In this context,  is Admissible for S means that  by f because it differs in the ith digit of every f(i). implies that there is a counter example to  in DenoteS so The Diagonal Argument is used in conjunction with the that in the denotational theory S induced by the system S: Logical Fixed Point theorem that is described in the next section. () ├S (├S)

Logical Fixed Point Theorem Theorem. For every  which is Admissible for T, there is The Logical Fixed Point Theorem enables propositions to an argument  such that: effectively speak of themselves . In this paper, the fixed point theorem is used to  ├ ArgumentChecker ( ,  )=1 T T demonstrate the existence of self-referential sentences that However, using logical roundtripping can result in will be used to prove theorems about Direct Logic using paradoxes as a result of the Diagonal Argument (explained the Diagonal Argument. below). Theorem [a λ-calculus version of Carnap 1934 pg 91 after Diagonal Argument Gödel 1931]67: The Diagonal Argument [du Bois-Reymond 1880] has Let f be a total function from Sentences to been used to prove many famous theorems beginning with Sentences68 the proof that the real numbers are not countable [Cantor ├ ( Fix(f) ⇔ f(Fix(f)) ) 1890, Zermelo 1908]. T where Fix(f) ≡ Θ(Θ) Proof. Suppose to the contrary that the function  which exists because f always converges f:ℕℝ enumerates the real numbers that are where Θ ≡ λ(g) f(λ(x) (g(g))(x))69 greater than equal to 0 but less than 1 so that f(n)i is the ith binary digit in the binary expansion of 66 f(n) which can be diagrammed as an array with The symbol ―≡‖ is used for ―is defined as‖. infinitely many rows and columns of binary digits 67 as follows: Credited in Kurt Gödel, Collected Works vol. I, p. 363, ftn. 23. However, Carnap, Gödel and followers did not use the λ calculus and consequently their formulation is more convoluted.

2. variable expression… 68 Note that f is an ordinary Lisp-like function except that where variable does not appear in expression Sentences (a of XML) are used instead of S-expressions. Theorem. If  is Goldbach-like, then  is Admissible for ℕ.

March 21, 2010 Page 15 of 41

Proof However LiarProposition is not admissible for ⊥ Fix(f) = Θ(Θ) = λ(g) f(λ(x) (g(g))(x)) (Θ) because presumably = f (λ(x) (Θ(Θ))(x)) LiarProposition ⊬⊥ (⊢⊥ LiarProposition) = f (Θ(Θ)) Likewise other standard paradoxes do not hold in Direct  by functional abstraction on Θ(Θ) 73 Logic. = f(Fix(f)) 70 Fix(f) ⇔ f(Fix(f)) Absolute Incompleteness Theorem  by abstraction of equals ―that within us we always hear the call: here is the problem, search for the solution: you Liar Paradox can find it by pure thought, for in Oh what a tangled web we weave, mathematics there is no ignorabimus.” When first we practice to deceive! Hilbert [1900]74 Sir Walter Scott in ―Marmion‖

But paradoxes loom: the Liar Paradox goes back at least as far as the Greek philosopher Eubulides of Miletus who 73 For example, Russell‘s Paradox , Curry‘s Paradox, and the lived in the fourth century BC. It could be put as follows: Kleene-Rosser Paradox are not valid for theories in Direct Logic LiarProposition is defined to be the proposition “The because, in the empty theory ⊥ (that has no axioms beyond those negation of LiarProposition holds.” From its definition, LiarProposition holds if and only if it of Direct Logic): Russell’s Paradox: doesn‟t! Russell ≡ Fix(Diagonalize) The argument can be formalized using the fixed point theorem and the diagonal argument in the following way: where Diagonalize ≡ λ(s) ├⊥ s  LiarProposition ≡ Fix(Diagonalize) ∴ Russell  ├  Russell  71 ⇔ ⊥ where Diagonalize ≡ λ(s)  s  But presumably ├⊥ Russell is not Admissible for ⊥ Argument for the Liar Paradox72 LiarProposition ⇔ Fix(Diagonalize) Curry’s Paradox: Curry ≡ Fix(Diagonalize) ⇔ Diagonalize(Fix(Diagonalize)) where Diagonalize ≡ λ(s)  s⇨   by the fixed point theorem ∴ Curry    Curry ⇨   ⇔ λ(s)  s  (Fix(Diagonalize)) But presumably, in general Curry⇨ is not Admissible for ⊥ ⇔   Fix(Diagonalize)  

⇔   LiarProposition  Kleene-Rosser Paradox: KleeneRosser ≡ Diagonalize(Diagonalize) Therefore ⊢⊥ (LiarProposition ⇔   LiarProposition  ) where Diagonalize ≡ λ(f)  f(f)  ∴ KleeneRosser ⇔   KleeneRosser 

But presumably KleeneRosser is not Admissible for ⊥ 69 Where did the definition of Θ come from? First note that λ(x) (g(g))(x) = g(g) and consequently Paradox of Inferability Θ = λ(g) f(g(g)) Inferable ≡ Fix(Diagonalize) So Θ takes itself as an argument and returns the result of applying where Diagonalize ≡ λ(s) ├⊥ s  f to the result of applying itself to itself! In this way a fixed point of f is constructed. ∴ Inferable ⇔  ├⊥Inferable 

70 Note that equality (=) is not defined on abstract propositions But presumably├⊥Inferable is not Admissible for ⊥ (like Fix(f) ). Also note that logical equivalence () is not defined on concrete XML sentences (like Fix(f) ). 74 Reiterated in [Hilbert 1930] just before [Gödel 1931].

71 According to [Lewis 2004]: Note that Diagonalize always converges. Von Neumann often had insights into the repercussions of work that others would understand later; on hearing Gödel 72 As explained below, this argument is not valid in Direct Logic. present his results on formal incompleteness, he immediately forsook logic and said “it’s all over.” (emphasis added)

March 21, 2010 Page 16 of 41

Incompleteness of a theory T is defined to mean that there Theorem: Theories in Direct Logic are self-provably 75 is some proposition that is logically undecidable in T, i.e. absolutely incomplete. that the proposition cannot be proved and neither can its It is sufficient to self-prove that Uninferable is logically negation, i.e., a theory T is incomplete if and only if there T undecidable, i.e., is a logically undecidable proposition  such that

1. ⊢ ⊬ Uninferable (⊬ )  (⊬  ) T T T T T The general heuristic for constructing such a sentence  is 2. ⊢ ⊬ Uninferable T T T to construct a proposition that says the following: Proof of Theorem:76 This proposition is uninferable in T. 1) To prove: ⊬ Uninferable T T

⊢ (Uninferable ⇨ ⊬ Uninferable )  lemma Such a proposition (called Uninferable ) can be T T T T T constructed as follows using the fixed point theorem and Uninferable ⊢ ⊬ Uninferable T T T T diagonalization:  2-way deduction theorem

(⊢ Uninferable ) ⊢ (⊢ ⊬ Uninferable )  soundness Uninferable ≡ Fix(Diagonalize)  T T T T T T T ⊢ ⊬ Uninferable T T T  Argument for Self Infers Argument for Opposite where Diagonalize ≡ λ(s) ⊬ s  T  Diagonalize(s) is a sentence that says that 2) To prove: ⊬  Uninferable T T  s is not inferable in T ⊢ (Uninferable ⇨ ├ Uninferable ) T T T T  contrapositive of lemma  Uninferable ├ (├ Uninferable ) The following lemma verifies that Uninferable has the T T T T T desired property:  2-way deduction theorem

(⊢  Uninferable ) ⊢ (⊢ ⊢ Uninferable ) Lemma: ⊢ (Uninferable ⇔ ⊬ Uninferable ) T T T T T T T T T T  soundness Proof: (⊢  Uninferable ) ⊢ (⊢ Uninferable ))  faithfulness T T T T T First show that ⊬ Uninferable is Admissible for T T T ⊢ ⊬  Uninferable Proof: We need to show the following: T T T  Argument for Self Infers Argument for Opposite ((⊬ Uninferable )) ⊢ (⊢ (⊬ Uninferable )) T T T T T T which by double negation elimination is equivalent to However, as shown in the next section, a showing consequence of self-provable incompleteness is inconsistency. (⊢ Uninferable ) ⊢ (⊢ ⊢ Uninferable ) T T T T T T which follows immediately from adequacy.

Uninferable ⇔ Fix(Diagonalize) T ⇔ Diagonalize(Fix(Diagonalize))

 logical fixed point theorem 75 Absolute incompleteness for a theory T is incompleteness that ⇔ λ(s) ⊬ s  (Fix(Diagonalize)) T does not depend on the subject matter of T [Martin-Löf 1995,  definition of Diagonalize Feferman 2006c].

⇔  ⊬ Fix(Diagonalize)   76 T Incompleteness of was proved informally using proof by contradiction in a stratified metatheory ⇔  ⊬ Uninferable   T T in [Gödel 1931] with restrictive conditions. Then [Rosser 1936] informally proved incompleteness using proof by contradiction in ⇔ ⊬ Uninferable T T a stratified metatheory assuming consistency of Principia Mathematica. The below does not use stratified  Admissibility of ⊬ Uninferable T T metatheories and uses self-refutation instead of proof by contradiction or.

March 21, 2010 Page 17 of 41

Absolute Inconsistency Theorem Logical necessity of inconsistency Have said—with pride in a mathematical All truth passes through three stages: discovery: „Look, this is how we produce a First, it is ridiculed. contradiction.‟ [Wittgenstein 1956] Second, it is violently opposed. Third, it is accepted as being self-evident. The test of a first-rate intelligence is the ability to Arthur Schopenhauer (1788-1860) hold two opposed ideas in the mind at the same It is worth noting that inconsistency about Uninferable time, and still retain the ability to function. T79 does not cause any particular problems for Direct Logic: --- F. Scott Fitzgerald in ―The Crack up‖  Because T is inconsistency tolerant, that T is Theorem: Theories in Direct Logic are self-provably inconsistent about Uninferable (by itself) should not 77 T inconsistent. affect other reasoning. Also the subject matter of

Uninferable is not of general interest in software It is sufficient to show that T proves both Uninferable T T engineering and should not affect reasoning about and its negation, i.e., current large software systems. So do software 1. ⊢ Uninferable engineers need to care that T is inconsistent about T T Uninferable as opposed to all the other 2. ⊢ Uninferable T T T inconsistencies of which they care about more?80 T Proof of theorem78  The logically necessary inconsistency concerning Uninferable is a nice illustration of how 1). ⊢ Uninferable is immediate from the T T T inconsistencies often arise in large software incompleteness theorem ⊢ ⊬ Uninferable and the systems: “there can be good arguments on both T T T sides for contradictory conclusions”. lemma ⊢ (Uninferable ⇔ ⊬ Uninferable ). T T T T A big advantage of inconstancy tolerance is that it makes fewer mistakes than classical logic when dealing 2) ⊢ Uninferable is immediate from ⊢ T T T with inconsistent theories. Since software engineers have Uninferable (above) and the contrapositive of the T to deal with theories chock full of inconsistencies, Direct

lemma ⊢ (Uninferable ⇔ ⊢ Uninferable ) Logic should be attractive. However, to make it relevant T T T T we need to provide them with tools that are cost effective. At first, TRUTH may seem like a desirable property for propositions in theories for large software systems. However, because a theory T is necessarily inconsistent about Uninferable , it is impossible to consistently assign T truth values to propositions of T. In particular it is 77 This theorem is closely related to dialetheism [Priest and impossible to consistently assign a truth value to the Routley 1989] which made the claim that mathematics is proposition Uninferable . If the proposition is assigned the T inconsistent (e.g. because of the Liar Paradox). Every theory of value TRUE, then (by the rules for truth values) it must Direct Logic is necessarily inconsistent because it self-infers the Gödelian paradoxical sentence, cf. [Routley 1979], [Priest and also be assigned FALSE and vice versa. Tanaka 2004], etc. 78 According to Wittgenstein, Let us suppose I prove the unprovability (in Russell‟s system

[Principia Mathematica] (PM)]) of P [⊢ ⊬ P] (where P PM PM is Uninferable the Gödel sentence of the system); then by PM this proof I have proved P [⊢ P]. Now if this proof were PM one in Russell‟s system—I should in this case have proved at once that it belonged [⊢ P] and did not belong [⊢ P] PM PM to Russell‟s system.—That is what comes of making up such 79 As pointed out above, the other standard paradoxes (Liar, sentences. But there is a contradiction here!—Well, then Russell, Curry, Kleene–Rosser, etc.) are blocked in Direct Logic. there is a contradiction here [in PM]. Does it do any harm here? [Wittgenstein, 1956, p. 51e] 80 Of course, there are other inconsistent propositions of the same ilk, cf., Rosser [1936].

March 21, 2010 Page 18 of 41

It is not obvious what (if anything) is wrong or how to Definition. fix it. Of course, this is contrary to the traditional view of Tarski who wrote: Argument Inferred propositions for T are I believe everybody agrees that one of the reasons those  such that (├ ) ├  which may compel us to reject an empirical theory is T T the proof of its inconsistency. . . . It seems to me that the real reason of our attitude is...: We know (if only One might naively assume that all propositions are intuitively) that an inconsistent theory must contain Argument Inferred. The naive intuition is that if there is an false sentences. [Tarski 1944] argument for a proposition infers the proposition. However, On the other hand, Frege [1915] suggested that, in a as shown below, an argument inferred proposition must logically perfect language, the word ‗true‘ would not hold. Therefore every proposition could be inferred if all appear! According to McGee [2006], he argued that propositions are argument inferred!82 when we say that it is true that seawater is salty, we don‟t add anything to what we say when we say simply that seawater is salty, so the notion of truth, ArgInfers ≡ Fix(Diagonalize) in spite of being the central notion of [classical] where Diagonalize ≡ λ(s)  (├ s ) ├  T T logic, is a singularly ineffectual notion. It is

surprising that we would have occasion to use such 83 an impotent notion, nevermind that we would regard Theorem : From that it hold in T that  is Argument it as valuable and important. Inferred for T and (├ ArgInfers)├  is Admissible Why did Gödel and the logicians who followed him not T T for it follows that ├  go in this direction? Feferman [2006b] remarked on ―the T, T shadow of Hilbert that loomed over Gödel from the beginning to the end of his career.‖ Also Feferman [2006a] Proof: conjectured that ―Gödel simply found it galling all through Suppose that  is argument inferred for T and his life that he never received the recognition from Hilbert (├ ArgInfers) ├  is Admissible for T. that he deserved.‖ Furthermore, Feferman maintained that T T It is sufficient to prove ├  ―the challenge remained well into his last decade for T Gödel to demonstrate decisively, if possible, why it is Lemma: ├ (ArgInfers⇔ ((├ ArgInfers)├ ))) necessary to go beyond Hilbert‟s finitism in order to T T T prosecute the constructive consistency program.‖ Indeed Proof: Gödel saw his task as being ―to find a consistency proof for ArgInfers ⇔ Fix(Diagonalize) arithmetic based on constructively evident though abstract ⇔ Diagonalize (Fix(Diagonalize)) principles‖ [Dawson 1997 pg. 263]. Gödel had a horror of ⇔λ(s) (├ s )├  (Fix(Diagonalize)) T T inconsistency because it was incompatible with his firmly ⇔   (├ Fix(Diagonalize) )├   held Platonism. T T ⇔   (├ ArgInfers)├   T T

Don’t believe every argument ⇔ ((├ ArgInfers) ├ ) T T 81 Don‟t believe everything you think .  by Admissibility of (├ ArgInfers)├  T T Thomas Kida [2006]

In Direct Logic, simply because there is an argument for a proposition is not by itself sufficient to infer the proposition. Instead, arguments both for and against the proposition should be considered.

82 modulo questions of Admissibility 81 According to Frege‘s Grundgesetze , the laws of logic are ―the most general laws, which prescribe universally the way in which 83 Generalization of Löb‘s Theorem [Löb 1955]. Also see [Dean one ought to think if one is to think at all.‖ [Feferman 1999] and Kurokowa 2009].

March 21, 2010 Page 19 of 41

Proof of theorem84 Direct Logic makes the following contributions over Relevance Logic: Suppose (├ )├  T T • Boolean Equivalences We need to show that ├  T • Splitting (including Splitting by Negation) • Two-way Deduction Theorem (Natural Deduction) ├ (ArgInfers ├ ((├ ArgInfers) ├ ))) T T T T • Self-refutation  lemma • Incompleteness Theorem self-provable ├ ((├ ArgInfers) ├ (├ ((├ ArgInfers) ├ )))) T T T T T T • Logical necessity of inconsistency  soundness on above • Recursive decidability of Boolean fragment86

├ ((├ ArgInfers)├ (├ ((├ ├ ArgInfers)├ (├ )))) T T T T T T T T Concurrency is the Norm  soundness on (├ ArgInfers)├  T T

├ ((├ ArgInfers)├ (├ ├ ArgInfers)) The distinction between past, present and T T T T T adequacy future is only a stubbornly persistent illusion. Albert Einstein ├ ((├ ArgInfers) ├ (├ ))  detachment T T T T ├ ((├ ArgInfers) ├ ) Concurrency has now become the norm. However T T T transitivity on hypothesis nondeterminism came first.

├ ArgInfers  transitivity on lemma T Nondeterministic computation ├ ├ ArgInfers  adequacy on ├ ArgInfers T T T Several models of nondeterministic computation were ├ ((├ ├ ArgInfers) ├ (├ )) T T T T T developed including the following:

 soundness on (├ ArgInfers) ├  The lambda calculus can be viewed as T T the earliest message passing programming language ├ ((├ ArgInfers) ├ (├ )) T T T T [Hewitt, Bishop, and Steiger 1973]. For example the  adequacy on ├ ArgInfers T lambda expression below implements a tree data structure when supplied with parameters for a leftSubTree and ├ ├   detachment on ├ ArgInfers T T T rightSubTree. When such a tree is given a parameter ├   faithfulness on ├  T T message "getLeft", it returns leftSubTree and likewise when given the message "getRight" it returns Contributions of Direct Logic rightSubTree. Direct Logic makes the following contributions over the λ leftSubTree, rightSubTree traditional Tarskian framework: λ message • Direct Inference (no contrapositive bug for inference) if message == “GetLeft") • Direct Argumentation (inference directly expressed) then leftSubTree • Inconsistency Tolerance else if message == “GetRight") Relevance Logic [Mares 2006] arose from attempts to then rightSubTree axiomatise the notion that an implication ⇨  should be However, the semantics of the lambda calculus were regarded to hold only if the hypothesis  is ―relevant‖ to expressed using variable substitution in which the values of the conclusion . According to [Routley 1979], ―The parameters were substituted into the body of an invoked abandonment of disjunctive syllogism is indeed the lambda expression. The substitution model is unsuitable characteristic feature of the relevant logic solution to the for concurrency because it does not allow the capability of implicational paradoxes.‖85 Since Direct Logic sharing of changing resources. Inspired by the lambda calculus, the interpreter for the programming language incorporates disjunctive syllogism ((ΦΨ), ¬Φ ├ Ψ) and Lisp made use of a data structure called an environment so does not support disjunction introduction (Ψ ├ ΦΨ), it is that the values of parameters did not have to be substituted not a Relevance Logic. into the body of an invoked lambda expression. This allowed for sharing of the effects of updating shared data structures but did not provide for concurrency.

84 The proof is an adaptation for Direct Logic of [Löb 1955; Petri nets Prior to the development of the Actor model, Verbrugge 2003]. Petri nets were widely used to model nondeterministic

85 computation. However, they were widely acknowledged to Instead Relevance logics (e.g. R and RM) support disjunction introduction in the form ├(Ψ ⇨ ΦΨ) [Maddux 2007]. 86 However RM and S are recursively decidable [Deutsch 1985].

March 21, 2010 Page 20 of 41

have an important limitation: they modeled control flow The first (token) encountered (in a program) was looked but not data flow. Consequently they were not readily up in the dynamic context, to determine the receiver of composable thereby limiting their modularity. Hewitt the subsequent message. The name lookup began with pointed out another difficulty with Petri nets: simultaneous the class dictionary of the current activation. Failing action, i.e., the atomic step of computation in Petri nets is a there, it moved to the sender of that activation and so on transition in which tokens simultaneously disappear from up the sender chain. When a binding was finally found the input places of a transition and appear in the output for the token, its value became the receiver of a new places. The physical basis of using a primitive with this message, and the interpreter activated the code for that kind of simultaneity seemed questionable to him. Despite object's class.89 these apparent difficulties, Petri nets continue to be a popular approach to modeling nondeterminism, and are objects. The authors of Simula had considered making such still the subject of active research. primitives into objects but refrained largely for efficiency reasons. Java at first used the expedient of having both primitive Simula 67 pioneered using message passing for and object versions of integers, floating point numbers, etc. The computation, motivated by discrete event simulation C# programming language (and later versions of Java, starting applications. These applications had become large and with Java 1.5) adopted the more elegant solution of using boxing unmodular in previous simulation . At each time and unboxing, a variant of which had been used earlier in some Lisp implementations. step, a large central program would have to go through and update the state of each simulation object that changed 88 The Smalltalk system went on to become very influential, depending on the state of which ever simulation objects innovating in bitmap displays, personal computing, the class that it interacted with on that step. Kristen Nygaard and browser interface, and many other ways. Meanwhile the Actor Ole-Johan Dahl developed the idea (first described in an efforts at MIT remained focused on developing the science and IFIP workshop in 1967) of having methods on each object engineering of higher level concurrency that would update its own local state based on messages See the 2nd appendix of this paper on how Actors treated meta- from other objects. In addition they introduced a class circular evaluation differently than Smalltalk-72 and Briot [1988] structure for objects with inheritance. Their innovations for ideas that were developed later on how to incorporate some considerably improved the modularity of programs. Simula kinds of Actor concurrency into later versions of Smalltalk.

67 used nondeterministic coroutine control structure in its 89 simulations. According to the Smalltalk-72 Instruction Manual [Goldberg and Kay 1976]: There is not one global message to which all message "fetches" Smalltalk-72. Planner, Simula 67, Smalltalk-72 [Kay 1975; Ingalls 1983] and computer networks had previously (use of the Smalltalk symbols eyeball,  ; colon, :, and open 표 used message passing. However, they were too colon, 표 ) refer; rather, messages form a hierarchy which we complicated to use as the foundation for a mathematical explain in the following way-- suppose I just received a theory of concurrency. Also they did not address message; I read part of it and decide I should send my friend a fundamental issues of concurrency. message; I wait until my friend reads his message (the one I sent him, not the one I received); when he finishes reading his Alan Kay was influenced by message passing in the message, I return to reading my message. I can choose to let my pattern-directed invocation of Planner in developing friend read the rest of my message, but then I cannot get the Smalltalk-71. Hewitt was intrigued by Smalltalk-71 but message back to read it myself (note, however, that this can be was put off by the complexity of communication that done using the Smalltalk object apply which will be discussed included invocations with many fields including global, later). I can also choose to include permission in my message to sender, receiver, reply-style, status, reply, operator my friend to ask me to fetch some information from my message selector, etc. and to give that in information to him (accomplished by 표 In November 1972 Kay visited MIT and discussed some including : or 표 in the message to the friend). However, of his ideas for Smalltalk-72 building on the Logo work of anything my friend fetches, I can no longer have. In other words, Seymour Papert and the "little person" metaphor of 1) An object (let's call it the CALLER) can send a message computation used for teaching children to program. to another object (the RECEIVER) by simply mentioning However, the message passing of Smalltalk-72 was quite the RECEIVER's name followed by the message. complex [Kay 1975]. Code in the language was viewed by 2) The action of message sending forms a stack of messages; the last message sent is put on the top. the interpreter as simply a stream of tokens.87 As Dan 88 3) Each attempt to receive information typically means Ingalls [1983] later described it: looking at the message on the top of the stack. 4) The RECEIVER uses the eyeball, , the colon, :, and the 87 표 Subsequent versions of the Smalltalk language largely open colon, 표 , to receive information from the message followed the path of using the virtual methods of Simula in the at the top of the stack. message passing structure of programs. However Smalltalk-72 5) When the RECEIVER completes his actions, the message made primitives such as integers, floating point numbers, etc. into at the top of the stack is removed and the ability to send

March 21, 2010 Page 21 of 41

Thus the message passing model in Smalltalk-72 was Arguments for incorporating unbounded closely tied to a particular machine model and nondeterminism programming language syntax that did not lend itself to Carl Hewitt [1985, 2006] argued against Dijkstra in concurrency.90 support of the Actor model:  There is no bound that can be placed on how long Dijkstra argued against unbounded nondeterminism it takes a computational circuit called an arbiter to “Things are only impossible until they're not.” settle. Arbiters are used in computers to deal with Jean-Luc Picard in “Star Trek: The Next Generation” the circumstance that computer clocks operate asynchronously with input from outside, e.g., In theoretical Computer Science, unbounded keyboard input, disk access, network input, etc. So nondeterminism (sometimes called unbounded it could take an unbounded time for a message sent indeterminacy) is a property of concurrency by which the to a computer to be received and in the meantime amount of delay in servicing a request can become the computer could traverse an unbounded number unbounded as a result of arbitration of contention for of states. shared resources while still guaranteeing that the request  Electronic mail enables unbounded will eventually be serviced. nondeterminism since mail can be stored on servers Edsger Dijkstra [1976] argued that it is impossible to indefinitely before being delivered. implement systems with unbounded nondeterminism  Communication links to servers on the Internet can although the Actor model [Hewitt, Bishop, and Steiger be out of service indefinitely. 1973] explicitly supported unbounded nondeterminism. Nondeterministic automata Nondeterministic Turing machines have only bounded nondeterminism. Sequential programs containing guarded and receive messages returns to the CALLER. The commands as the only sources of nondeterminism have RECEIVER may return a value to be used by the only bounded nondeterminism [Dijkstra 1976] because CALLER. 6) This sequence of sending and receiving messages, viewed choice nondeterminism is bounded. Gordon Plotkin [1976] here as a process of stacking messages, means that each gave a proof as follows: message on the stack has a CALLER (message sender) Now the set of initial segments of execution sequences and RECEIVER (message receiver). Each time the of a given nondeterministic program P, starting from a RECEIVER is finished, his message is removed from the given state, will form a tree. The branching points will stack and the CALLER becomes the current RECEIVER. correspond to the choice points in the program. Since The now current RECEIVER can continue reading any there are always only finitely many alternatives at each information remaining in his message. choice point, the branching factor of the tree is always 7) Initially, the RECEIVER is the first object in the message finite. That is, the tree is finitary. Now König's lemma typed by the programmer, who is the CALLER. says that if every branch of a finitary tree is finite, then 8) If the RECEIVER's message contains a eyeball,  ; colon, so is the tree itself. In the present case this means that 표 if every execution sequence of P terminates, then there :, or open colon, 표 , he can obtain further information are only finitely many execution sequences. So if an from the CALLER's message. Any information output set of P is infinite, it must contain a successfully obtained by the RECEIVER is no longer nonterminating computation. available to the CALLER. 9) By calling on the object apply, the CALLER. can give the RECEIVER the right to see all of the CALLER's Indeterminacy in concurrent computation versus remaining message. The CALLER can no longer get nondeterministic automata information that is read by the RECEIVER; he can, Will Clinger [1981] provided the following analysis of the however, read anything that remains after the RECEIVER above proof by Plotkin: completes its actions. 10) There are two further special Smalltalk symbols useful in This proof depends upon the premise that if every node sending and receiving messages. One is the keyhole, , x of a certain infinite branch can be reached by some that lets the RECEIVER ―peek‖ at the message. It is the computation c, then there exists a computation c that 표 goes through every node x on the branch. ... Clearly same as the 표 except it does not remove the information from the message. The second symbol is the hash mark, #, this premise follows not from logic but rather from the placed in the message in order to send a reference to the interpretation given to choice points. This premise fails next token rather than the token itself. for arrival nondeterminism [in the arrival of messages in the Actor model] because of finite delay [in the 90 Although Smalltalk-72 was bootstrapped on itself, the language arrival of messages]. Though each node on an infinite constructs were not formally defined as objects that respond to branch must lie on a branch with a limit, the infinite Eval messages (see [Hewitt 2009d]). branch need not itself have a limit. Thus the existence

March 21, 2010 Page 22 of 41

of an infinite branch does not necessarily imply a other inference capabilities, Direct Logic is a very nonterminating computation. powerful Logic Programming language.

Bounded nondeterminism in CSP Unbounded nondeterminism in ActorScript Consider the following program written in CSP [Hoare Nevertheless, there are concurrent programs that are not 1978]: equivalent to any Direct Logic program. For example in [X:: Z!stop( ) the Actor model, the following concurrent program in || ActorScriptTM [Hewitt 2009c] will return an integer of Y :: guard: boolean; guard := true; unbounded size is not equivalent to any Direct Logic *[guard  Z!go( ); Z?guard] expression (for reasoning see below) || Unbounded  Z :: n: integer; n:= 0; {behavior continue: boolean; continue := true; [self start]  when a start message is received *[X?stop( ) continue := false; 퐜 [] {let ( = let c be a Counter 퐂퐨퐮퐧퐭퐞퐫 Y?go( ) n := n+1; Y!continue create SimpleCounter(n=0,continue=true)) ] which is a new SimpleCounter with ]  count equal 0 and continue equal true According to Clinger [1981]: This program illustrates global nondeterminism, since the {[c stop],  send a stop message to c and nondeterminism arises from incomplete specification of the [c go]}}}  concurrently return the value of timing of signals between the three processes X, Y, and Z. The  sending a go message to c repetitive guarded command in the definition of Z has two alternatives: either the stop message is accepted from X, in SimpleCounter  which case continue is set to false, or a go message is {serializer 퐧 accepted from Y, in which case n is incremented and Y is sent  n is the current count 퐈퐧퐭퐞퐠퐞퐫 the value of continue. If Z ever accepts the stop message from X, then X terminates. Accepting the stop causes continue to be 퐜퐨퐧퐭퐢퐧퐮퐞  continue is true until set to false, so after Y sends its next go message, Y will receive 퐈퐧퐭퐞퐠퐞퐫 false as the value of its guard and will terminate. When both X stop has been received and Y have terminated, Z terminates because it no longer has ------live processes providing input. implements Counter As the author of CSP points out, therefore, if the repetitive  implements the Counter93 interface guarded command in the definition of Z were required to be [self go] when an go message is received fair, this program would have unbounded nondeterminism: it {match continue would be guaranteed to halt but there would be no bound on true :  continue is true the final value of n91. In actual fact, the repetitive guarded commands of CSP are not required to be fair, and so the {future [self go] alsoBecome (n=n+1)} program may not halt [Hoare 1978]. This fact may be  return a future of sending a confirmed by a tedious calculation using the semantics of CSP  go message to this counter (self) also [Francez, Hoare, Lehmann, and de Roever 1979] or simply by  update n by incrementing by 1 noting that the semantics of CSP is based upon a conventional false :  continue is false power domain and thus does not give rise to unbounded {n}}  return the count n 92 nondeterminism. [self stop] when a stop message is received Since it includes the nondeterministic λ calculus, direct {void alsoBecome (continue=false)}} inference, and mathematical induction in addition to its return void also update continue to be false

91 Of course, n would not survive the termination of Z and so the value cannot actually be exhibited after termination!

92 Dijkstra had convinced Hoare that unbounded nondeterminism 93 The Counter interface can be defined as follows: is impossible to implement and consequently the semantics of Counter   Counter is defined to be CSP had bounded nondeterminism [Francez, Hoare, Lehmann, {interface an interface and de Roever 1979]. [퐬퐞퐥퐟 퐠퐨 ]  a go message returns void This error was corrected in the revised version of CSP ([Hoare 푣표푖푑 1985; Roscoe 2005]) to explicitly provide unbounded [퐬퐞퐥퐟 퐬퐭퐨퐩 ] } a stop message returns an Integer nondeterminism. 퐈퐧퐭퐞퐠퐞퐫

March 21, 2010 Page 23 of 41

By the semantics of the Actor model of computation In this way we have proved that the Procedural [Clinger 1981] [Hewitt 2006], the result of evaluating the Embedding of Knowledge paradigm is strictly more expression [Unbounded start]94 is an integer of general than the Logic Programming paradigm. unbounded size. Computation is not subsumed by logical deduction Bounded Nondeterminism of Direct Logic The notion of computation has been evolving for a long But there is no Direct Logic expression that is equivalent to time. One of the earliest examples was Euclid‘s GCD [Unbounded start] for the following reason: algorithm. Next came mechanical calculators of various An expression  will be said to always converge (written kinds. These notions were formalized in the Turing as ) if and only if every reduction path terminates. I.e., Machines, the lambda calculus, etc. paradigm that focused there is no function f(Expressions) such that on the ―state‖ of a computation that could be logically f(0)=  and (n: f(n)  f(n+1) ) inferred from the ―previous‖ state. Scott and Strachey [1971] furthered the research program of attempting to where the symbol  is used for reduction in the reduce all computation to the lambda calculus culminating nondeterministic λ calculus (see the Appendix). For in Milne and Strachey [1976].97 example (λ(x) 0 | x(x)) (λ(x) 0 | x(x))95 because there is a nonterminating path.  Computational objects in process calculi are anonymous, Theorem: Bounded Nondeterminism of Direct Logic. If and communicate by sending messages either through an expression in Direct Logic always converges, then named channels (synchronous or asynchronous), or via there is a bound Bound on the number to which it can ambients (which can also be used to model channel-like converge. I.e., communications [Cardelli and Gordon 1998]). In contrast, n: (n ⇨ n≤Bound) Actors in the Actor model possess an identity, and communicate by sending messages to the mailing Consequently there is no Direct Logic program equivalent addresses of other Actors (this style of communication can to [Unbounded start] because it has unbounded also be used to model channel-like communications). nondeterminism whereas every Direct Logic program has For example, communication in the π –calculus [Milner 1993] bounded nondeterminism.96 takes the following form:  input: u(x).P is a process that gets a message from a 94 which sends Unbounded a start message communication channel named u before proceeding as P, binding the message received to the identifier x. In ActorScript, this can be modeled as follows: 95 Note that there are two bodies (separated by “|”) in each of the let x=[u get]; P λ expressions which provides for nondeterminism.  output: ū.P is a process that puts a message m on

96 communication channel u before proceeding as P. In The status of unbounded nondeterminism varies in process ActorScript, this can be modeled as follows: calculi (e.g. [Milner 1993; Cardelli and Gordon 1998]). There are {[u put: m]; P} many similarities between the Actor Model and process calculi, The rest of the π -calculus can be modeled using a two-phase but also several differences (some philosophical, some technical): commit protocol [Knabe 1992; Reppy, Russo, and Xiao 2009].  There is only one Actor model (although it has numerous

formal systems for design, analysis, verification, 97 In the 1960‘s at the MIT AI Lab, a culture developed around modeling, etc.); there are numerous process calculi, ―hacking‖ that concentrated on remarkable feats of programming developed for reasoning about a variety of different kinds [Levy 1984]. Growing out of this tradition, Gerry Sussman and of concurrent systems at various levels of detail (including Guy Steele decided to try to understand Actors by reducing them calculi that incorporate time, stochastic transitions, or to machine code that they could understand and so developed a constructs specific to application areas such as security ―Lisp-like language, Scheme, based on the lambda calculus, but analysis). extended for side effects, multiprocessing, and process synchronization.‖ [Sussman and Steele 2005] Unfortunately, their  The Actor model was inspired by the laws of physics and reductionist approach included primitives like depends on them for its fundamental axioms, i.e. physical START!PROCESS, STOP!PROCESS and laws (see Actor model theory); the process calculi were EVALUATE!UNINTERRUPTIBLEY that had the following originally inspired by algebra [Milner 1993]. explanation:  Semantics of the Actor model is based on message event This is the synchronization primitive. It evaluates an orderings in the Computational Representation Theorem. expression uninterruptibly; i.e. no other process may run until the expression has returned a value. Semantics of process calculi are based on structural Of course, the above reductionist approach is very unsatisfactory congruence in various kinds of bisimulations and because it missed a crucial aspect of the Actor model: the arrival equivalences. ordering of messages.

March 21, 2010 Page 24 of 41

The invention of digital computers caused a decisive Robert Kowalski developed the thesis that ―computation paradigm shift when the notion of an interrupt was could be subsumed by deduction” [Kowalski 1988a] that invented so that input that arrived asynchronously from he states was first proposed by Hayes [1973] in the form outside could be incorporated in an ongoing computation. ―Computation = controlled deduction.”99 [Kowalski 1979] The break was decisive because asynchronous Kowalski forcefully stated: communication cannot be implemented by Turing There is only one language suitable for machines etc. because the order of arrival of messages representing information -- whether declarative or cannot be logically inferred.98 procedural -- and that is first-order predicate Actors [Hewitt, Bishop, and Steiger 1973] was a new logic. There is only one intelligent way to process model of computation based on message passing in which information -- and that is by applying deductive there is no global state and unbounded nondeterminism is inference methods. [Kowalski 1980] modeled. Furthermore, unbounded nondeterminism is a The gauntlet was officially thrown in The Challenge of fundamental property of the Actor Model because it Open Systems [Hewitt 1985] to which [Kowalski 1988b] provides a guarantee of service for shared resources. In replied in Logic-Based Open Systems. This was followed previous models of computation with bounded up with [Hewitt and Agha 1988] in the context of the nondeterminism, it was possible for a request to a shared Japanese Fifth Generation Project. resource to never receive service because it was possible The Hayes-Kowalski thesis was valuable in that it that a nondeterministic choice would always be made to motivated further research to characterize exactly which service another request instead. Message passing has computations could be performed by Logic Programming. become the foundation of many-core and client-cloud However, contrary to the quotations (above) by Kowalski computing. and Hayes, computation in general cannot be subsumed by deduction and contrary to the quotation (above) attributed to Hayes, computation in general is not controlled In summary, Sussman and Steele [1975] mistakenly concluded deduction. In fact, Logic Programming is not ―we discovered that the 'Actors' and the lambda expressions were computationally universal as explained below. identical in implementation.‖ The actual situation is that the lambda calculus is capable of expressing some kinds of sequential Arrival order indeterminacy and parallel control structures but, in general, not the concurrency Hewitt and Agha [1991] and other published work argued expressed in the Actor model. On the other hand, the Actor model is capable of expressing everything in the lambda calculus and that mathematical models of concurrency did not determine particular concurrent computations as follows: more. 100 The Actor Model makes use of arbitration for 98 Computation was conceived in terms of nondeterministic determining which message is next in the arrival order of computation (e.g. Turing machines, Post productions, the lambda an Actor that is sent multiple messages concurrently. For calculus, Petri nets, nondeterministic simulations, etc.) in which example Arbiters can be used in the implementation of the each computational step changed the global state. However, it arrival order of messages sent to an Actor which are was well known that nondeterministic state machines have subject to indeterminacy in their arrival order. Since arrival bounded nondeterminism, i.e., if a machine is guaranteed to halt orders are in general indeterminate, they cannot be then it halts in a bounded number of states. Unbounded deduced from prior information by mathematical logic nondeterminism may at first seem like a rather esoteric property alone. Therefore mathematical logic cannot implement that is of no practical interest. However, this turns out not to be concurrent computation in open systems. the case because the ability to guarantee that a shared server will In concrete terms for Actor systems, typically we cannot respond to the requests that it receives requires unbounded observe the details by which the arrival order of messages nondeterminism. for an Actor is determined. Attempting to do so affects the However, there is no bound that can be placed on how long it results and can even push the indeterminacy elsewhere. takes a computational circuit called an arbiter to settle. Arbiters are used in computers to deal with the circumstance that computer Instead of observing the internals of arbitration processes clocks operate asynchronously with input from outside, e.g. of Actor computations, we await outcomes. Indeterminacy keyboard input, disk access, network input, etc. So it could take in arbiters produces indeterminacy in Actors. The reason an unbounded time for a message sent to a computer to be that we await outcomes is that we have no alternative received and in the meantime the computer could traverse an because of indeterminacy. unbounded number of states.98 Thus computers have the property It is important to be clear about the basis for the of unbounded nondeterminism. So there is an inconsistency published claim about the limitation of mathematical logic. between the nondeterministic state model of computation and the circuit model of arbiters. 99 Of course the same limitation applies to the Abstract State This thesis was also implicit in one interpretation of Cordell Machine (ASM) model [Blass, Gurevich, Rosenzweig, and Green‘s earlier work [Green 1969]. Rossman 2007a, 2007b; Glausch and Reisig 2006]. In the presence of arbiters, the global states in ASM are mythical. 100 Actors are the universal primitives of concurrent computation.

March 21, 2010 Page 25 of 41

It was not that individual Actors could not in general be One solution is to develop a concurrent variant of the implemented in mathematical logic. The claim is that Lisp meta-circular definition [McCarthy, Abrahams, because of the indeterminacy of the physical basis of Edwards, Hart, and Levin 1962] that was inspired by communication in the Actor model, no kind of inferential Turing's Universal Machine [Turing 1936]. If exp is a Lisp mathematical logic can deduce the order or arrival of future expression and env is an environment that assigns values 101 messages and the resulting computational steps. to identifiers, then the procedure EVAL with arguments exp and env evaluates exp using env. In the concurrent Computational Representation Theorem variant, Eval(env) is a message that can be sent to exp to What does the mathematical theory of Actors have to say cause exp to be evaluated. Using such messages, modular about this? A closed system is defined to be one which meta-circular definitions can be concisely expressed in the does not communicate with the outside. Actor model Actor model for universal concurrent programming theory provides the means to characterize all the possible languages [Hewitt 2009c]. computations of a closed system in terms of the Computational Representation Theorem [Clinger 1982; Scientific Community Metaphor Hewitt 2006]: The important thing in science is not so much to obtain new facts as to discover The denotation DenoteS of a closed system S represents new ways of thinking about them. all the possible behaviors of S as i Sir William Bragg DenoteS = ⊔iω ProgressionS (⊥S) Building on the Actor model of concurrent computation, where ProgressionS is an approximation function that Kornfeld and Hewitt [1981] developed fundamental takes a set of partial behaviors to their next stage and principles for Logic Programming in the Scientific ⊥S is the initial behavior of S. Community Metaphor [Hewitt 2006 2008b]:  Monotonicity: Once something is published it In this way, the behavior of S can be mathematically cannot be undone. Scientists publish their results so characterized in terms of all its possible behaviors they are available to all. Published work is collected (including those involving unbounded nondeterminism). and indexed in libraries. Scientists who change their mind can publish later articles contradicting earlier Although DenoteS is not an implementation of S, it can be ones. However, they are not allowed to go into the used to prove a generalization of the Church-Turing- libraries and “erase” old publications. Rosser-Kleene thesis [Kleene 1943]:  Concurrency: Scientists can work concurrently, Enumeration Theorem: If the primitive Actors of a overlapping in time and interacting with each other. closed Actor System S are effective, then the possible  Commutativity: Publications can be read regardless outputs of S are recursively enumerable. of whether they initiate new research or become Proof: Follows immediately from the relevant to ongoing research. Scientists who become Representation Theorem. interested in a scientific question typically make an effort to find out if the answer has already been The upshot is that concurrent systems can be published. In addition they attempt to keep abreast represented and characterized by logical deduction of further developments as they continue their work. but cannot be implemented. Thus, the following  Sponsorship: Sponsors provide resources for practical problem arose: computation, i.e., processing, storage, and communications. Publication and subscription How can practical programming languages be require sponsorship although sometimes costs can rigorously defined since the proposal by Scott and be offset by advertising. Strachey [1971] to define them in terms lambda  Pluralism: Publications include heterogeneous, calculus failed because the lambda calculus cannot overlapping and possibly conflicting information. implement concurrency? There is no central arbiter of truth in scientific communities.  Skepticism: Great effort is expended to test and validate current information and replace it with better information. 101 [Goldin and Wegner 2008] may seem superficially similar.  Provenance: The provenance of information is Unfortunately, it failed to comprehend the Actor model or many carefully tracked and recorded. of the previously published arguments (e.g. [Hewitt, Bishop and Steiger 1973], [Hewitt 1977], and [Hewitt and Agha 1988])  Rapid recovery: Instead of making immense effort summarized in this paper. to maintain absolute consistency and hide all

March 21, 2010 Page 26 of 41

failures, resources are deployed to recover as rapidly  Undecidability. Outcomes may be recursively as possible. undecidable. Initial experiments implementing the Scientific  Inconsistency tolerance. There are typically good Community Metaphor revolved around the development of arguments for both sides of contradictory a programming language named Ether that had procedural conclusions. plans to process goals and assertions concurrently and  Necessary Inconsistency. Theories of Direct Logic dynamically created new plans during program execution are necessarily inconsistent. [Kornfeld and Hewitt 1981]. Ether also addressed issues of  Concurrency. Other concurrently operating conflict and contradiction with multiple sources of system components may block, interfere with, or knowledge and multiple viewpoints. revert possible outcomes. Ether used viewpoints to relativise information in publications. However a great deal of information is shared  Indeterminacy. Because of concurrency, the outcomes may be physically indeterminate. across viewpoints. So Ether made use of inheritance so that information in a viewpoint could be readily used in other  Entanglement. The very process of reasoning viewpoints. Sometimes this inheritance is not exact as about possible outcomes can affect the outcomes. when the laws of physics in Newtonian mechanics are  Partiality. There might not be sufficient derived from those of Special Relativity. In such cases, information or resources available to infer Ether used translation instead of inheritance building on outcomes. work by Imre Lakatos [1976] who studied very  Nonuniversality. Logic Programs are not sophisticated kinds of translations of mathematical computationally universal because they cannot theorems (e.g., the Euler formula for polyhedra). Later implement some concurrent programs. Bruno Latour [1988] analyzed translation in scientific These limitations lead to an admission of logical communities. powerlessness: Viewpoints were used to implement natural deduction In general, a component of a large software system is (Fitch [1952]) in Ether. In order to prove a goal of the form logically powerless over the outcome of its actions. ├V (P ⇨ Q) for a viewpoint V, it is sufficient to create a This admission of powerlessness needs to become part of 103 new viewpoint V' that inherits from V, assert ├V’ P, and the common sense of large software systems. then prove ├V’ Q. Hierarchical viewpoints of this kind were introduced into Planner-like languages in the context Work to be done mechanism of QA-4 [Rulifson, Derksen, and Waldinger 1973]. The best way to predict the future is to invent it. Resolving issues among viewpoints requires negotiation Alan Kay as studied in the sociology and philosophy of science. There is much theoretical work to be done to further develop Direct Logic. The admission of logical powerlessness  The nontriviality104 of Direct Logic needs to be proved relative to the consistency of classical We must know, we will know. mathematics. Hilbert (1930) (also on his tombstone) In this regard Direct Logic is consonant with

Bourbaki: Descartes [1644] put forward the thesis that self-reference Absence of contradiction, in mathematics as conveys power, specifically the power of existence, as in “I 102 a whole or in any given branch of it, … think, therefore I am.” Direct inference conveys ability appears as an empirical fact, rather than as a for large software systems to directly reason about the metaphysical principle. The more a given possible outcomes of their actions. However there are branch has been developed, the less likely it limitations to logical inference including the following: becomes that contradictions may be met with  Admissibility. It may not be safe to use logical in its farther development.105 roundtripping on propositions (about outcomes) that are not admissible. 103  Incompleteness. It may be impossible to logically Admission of powerlessness is the beginning of Step 1 in 12- prove or disprove outcomes. step programs of recovery from addiction, first developed by Alcoholics Anonymous, e.g., see Wilson [1952].

104 Nontriviality means that not everything can be proved. 102 From the Latin, ―Cogito ergo sum.” 105 [André Weil 1949] speaking as a representative of Bourbaki

March 21, 2010 Page 27 of 41

Thus the long historical failure to find an works with the blood of his heart. explosion in the methods used by Direct Logic Boltzmann can be considered to be strong evidence of its nontriviality. A number of Logicists feel threatened by the results in this  Inconsistency tolerance of theories of Direct paper. Logic needs to be formally defined and proved.  Some would like to stick with just classical logic Church remarked as follows concerning a and not consider inconsistency tolerance.108 Foundation of Logic that he was developing: Our present project is to develop the consequences  Some would like to stick with the Tarskian of the foregoing set of postulates until a stratified theories and not consider direct contradiction is obtained from them, or until the inference. development has been carried so far consistently as  Some would like to stick with just Logic to make it empirically probable that no Programming (e.g. nondeterministic Turing contradiction can be obtained from them. And in Machines, λ calculus, etc.) and not consider this connection it is to be remembered that just such concurrency. empirical evidence, although admittedly inconclusive, is the only existing evidence of the And some would like to have nothing to do with any of the freedom from contradiction of any system of above! However, the results in this paper (and the driving mathematical logic which has a claim to adequacy. technological and economic forces behind them) tend to [Church 1933]106 push towards inconsistency tolerance, direct inference, and Direct Logic is in a similar position except that the concurrency. [Hewitt 2008a] task is to demonstrate inconsistency tolerance Software engineers for large software systems often have instead of consistency. Also Direct Logic has good arguments for some proposition P and also good overcome many of the problems of Church‘s arguments for the negation of P, which is troubling. So Foundation of Logic. what do large software manufacturers do? If the problem is serious, they bring it before a committee of stakeholders to  Inconsistencies such as the one about Uninferable T try and sort it out. In many particularly difficult cases the are relatively benign in the sense that they lack resulting decision has been to simply live with the problem significant consequences to software engineering. for a while. Consequently, large software systems are

Other propositions (such as ├ 1=0) are more shipped to customers with thousands of known T malignant because they can be used to infer that all inconsistencies of varying severity. The challenge is to try integers are equal to 0 using induction. To address malignant propositions, deeper investigations of 108 In 1994, Alan Robinson noted that he has ―always been argumentation using ╟ 107 must be undertaken in T a little quick to make adverse judgments about what I like which the provenance of information will play a to call ‗wacko logics‘ especially in Australia…I conduct central role. See [Hewitt 2009b]. my affairs as though I believe … that there is only one  fundamental principles of argumentation or many- logic. All the rest is variation in what you‘re reasoning core semantic engines? See [Hewitt 2008a, 2008b]. about, not in how you‘re reasoning … [Logic] is  Tooling for Direct Logic needs to be developed to immutable.‖ (quoted in Mackenzie [2001] page 286) support large software systems. See [Hewitt 2009b]. On the other hand Richard Routley noted: … classical logic bears a large of responsibility for the growing separation between philosophy and logic which Conclusion there is today… If classical logic is a modern tool What the poet laments holds for the inadequate for its job, modern philosophers have shown a mathematician. That he writes his classically stoic resignation in the face of this inadequacy. They have behaved like people who, faced with a device, designed to lift stream water, but which is so badly designed that it spills most of its freight, do not set themselves to the design of a better model, but rather devote much of their energy to constructing ingenious arguments to convince 106 The difference between the time that Church wrote the above themselves that the device is admirable, that they do not and today is that the standards for adequacy have gone up need or want the device to deliver more water; that there is dramatically. Direct Logic must be adequate to the needs of nothing wrong with wasting water and that it may even be reasoning about large software systems. Roundtripping is one of desirable; and that in order to “improve” the device they the biggest challenges to proving that Direct Logic is would have to change some features of the design, a thing inconsistency tolerant. which goes totally against their engineering intuitions and which they could not possibly consider doing. [Routley 107 ╟  means that  is an argument for  in T 2003] T

March 21, 2010 Page 28 of 41

to keep the situation from getting worse as systems of inference has been through Eubulides [4th century BC], continue to increase in complexity. Cantor [1890], Zermelo [1908], Russell [1908], Gödel Direct Logic has important advantages over previous [1931], Rosser [1936], Turing [1936], Curry [1942], Löb proposals (e.g. Relevance Logic) to more directly connect [1955], etc. leading ultimately to logically necessary inconsistency. antecedents to consequences in reasoning. These The concept of TRUTH has already been hard hit by the advantages include: pervasive inconsistencies of large software systems.  using natural deduction reasoning Accepting necessary logical inconsistency would be  preserving the standard Boolean equivalences another nail in its coffin. (ca. 1939) (double negation, De Morgan, etc.) said ―No one has ever yet got into trouble from a  being able to more safely reason about the contradiction in logic.‖ to which Alan Turing responded mutually inconsistent data, code, specifications, ―The real harm will not come in unless there is an application, in which case a bridge may fall down.‖[Holt and test cases of client cloud computing 2006] It seems that we may now have arrived at the  absence of contrapositive inference bug remarkable circumstance that we can‘t keep our systems  having an intuitive deduction theorem that from crashing without allowing contradictions into our connects logical implication with inference. logic!  inference in Boolean109 Direct Logic is This paper also proves that Logic Programming is not 110 computationally universal in that there are concurrent recursively decidable programs for which there is no equivalent in Direct Logic. Direct Logic preserves as much of classical logic as Thus the Logic Programming paradigm is strictly less possible given that it is based on direct inference. general than the Procedural Embedding of Knowledge Logicists are now challenged as to whether they agree paradigm. that Of course the results of this paper do not diminish the  Inconsistency is the norm. importance of logic.111 There is much work to be done!112  Direct inference is the norm. Our everyday life is becoming increasingly dependent on large software systems. And these systems are becoming  Logic Programming is not computationally increasingly permeated with inconsistency and universal. concurrency. As these pervasively inconsistent concurrent systems become a major part of the environment in which we A big advantage of inconsistency tolerant logic is that it live, it becomes an issue of common sense how to use makes fewer mistakes than classical logic when dealing with inconsistent theories. Since software engineers have to deal with theories chock full of inconsistencies, Direct 111 In a similar way, the incompleteness theorems did not Logic should be attractive. However, to make it relevant diminish the importance of logic although they also caused we need to provide them with tools that are cost effective. concern among some Logicists. For example This paper develops a very powerful formalism (called (David Hilbert‘s assistant) wrote ―I was doubtful already Direct Logic) that incorporates the mathematics of sometime before [1931] about the completeness of the formal Computer Science and allows direct inference for almost system [for number theory], and I uttered [my doubts] to Hilbert, all of classical logic to be used in a way that is suitable for who was much angry … Likewise he was angry at Gödel‟s Software Engineering. results.‖ (quoted in Dawson [1998]) Gödel and Rosser proved that it is not possible to decide In fact, Hilbert never became reconciled with incompleteness all mathematical questions by inference. However, the incompleteness theorem relies on the assumption of as evidenced by the last two paragraphs of Hilbert's preface to consistency! This paper proves a generalization of the [Hilbert and Bernays 1934] (translation by Wilfried Sieg): Gödel/Rosser incompleteness theorem: a theory in Direct ―This situation of the results that have been achieved thus Logic is incomplete without relying on the assumption of far in at the same time points the direction for consistency. However, there is a further consequence. the further research with the end goal to establish as Although the classical mathematical fragment of Direct consistent all our usual methods of mathematics. Logic is evidently consistent, since the Gödelian With respect to this goal, I would like to emphasize the paradoxical proposition is self-provable, every theory in following: the view, which temporarily arose and which Direct Logic is inconsistent! The mathematical exploration maintained that certain recent results of Gödel show that my proof theory can't be carried out, has been shown to be erroneous. In fact that result shows only that one must 109 Boolean propositions use only the connectives for exploit the finitary standpoint in a sharper way for the conjunction, disjunction, implication, and negation. farther reaching consistency proofs.”

110 In this way Direct Logic differs from Relevance Logic 112 In the film Dangerous Knowledge [Malone 2006], explores because a wide range of Boolean Relevance Logics (except for the history of previous crises in the foundations for the logic of RM and S) are recursively undecidable. [Deutsch 1985] knowledge focusing on the ultimately tragic personal outcomes for Cantor, Boltzmann, Gödel, and Turing.

March 21, 2010 Page 29 of 41

them effectively. We will need sophisticated software dinner with Harvey Friedman at Chez Panisse after his 2nd systems to help people understand and apply the Tarski lecture. principles and practices suggested in this paper. Creating Jeremy Forth, Tim Hinrichs, Fanya S. Montalvo, and this software is not a trivial undertaking! Richard Waldinger provided helpful comments and suggestions on the logically necessary inconsistencies in theories of Direct Logic. Rineke Verbrugge provided Acknowledgements valuable comments and suggestions at MALLOW‘07. Sol Feferman, Mike Genesereth, David Israel, Bill Jarrold, Mike Genesereth and Gordon Plotkin kindly hosted my Ben Kuipers, Pat Langley, Vladimir Lifschitz, Frank lectures at Stanford and Edinburgh, respectively, on ―The McCabe, John McCarthy, Fanya S. Montalvo, Peter Logical Necessity of Inconsistency‖. Inclusion of Cantor‘s Neumann, Ray Perrault, Natarajan Shankar, Mark Stickel, diagonal argument as motivation as well as significant Richard Waldinger, and others provided valuable feedback improvements in the presentation of the incompleteness at seminars at Stanford, SRI, and UT Austin to an earlier and inconsistency theorems were suggested by Jeremy version of the material in this paper. For the AAAI Spring Forth. John McCarthy pointed to the distinction between Symposium‟06, Ed Feigenbaum, Mehmet Göker, David Logic Programming and the Logicist Programme for Lavery, Doug Lenat, Dan Shapiro, and others provided Artificial Intelligence. Reviewers at JAIR made useful valuable feedback. At MIT Henry Lieberman, Ted Selker, suggestions. Mark S. Miller made important suggestions Gerry Sussman and the members of Common Sense for improving the meta-circular definition of ActorScript. Research Group made valuable comments. Reviewers for Comments by Michael Beeson helped make the AAMAS ‟06 and „07, KR‟06, COIN@AAMAS‟06 and presentation of Direct Logic more rigorous. Conversations IJCAR‟06 made suggestions for improvement. with Jim Larson helped clarify the relationship between In the logic community, Mike Dunn, Sol Feferman, classical logic and the inconsistency tolerant logic. An Mike Genesereth, Tim Hinrichs, Mike Kassoff, John anonymous referee of the Journal of Logic and McCarthy, Chris Mortensen, Graham Priest, , Computation made a useful comment. John-Jules Meyer Richard Weyhrauch and Ed Zalta provided valuable and Albert Visser provided helpful advice and suggestions. feedback Comments by Mike Genesereth, Eric Kao, and Mary-Anne Dana Scott made helpful suggestions on logical Williams at my Stanford Logic Group seminar ―Inference roundtripping and incompleteness. Richard Waldinger in Boolean Direct Logic is Recursively Decidable‖ on 18 provided extensive suggestions that resulted in better November 2009 greatly improved the explanation of direct focusing a previous version of this paper and increasing its inference. Discussions at my seminar ―Direct Inference for TM readability. Sol Feferman reminded me of the connection Direct Logic ‖ at SRI hosted by Richard Waldinger on 7 between Admissibility and 1. Discussion with Pat Hayes January 2010 helped improve the presentation of Direct and Bob Kowalski provided insight into the early history Logic. of Prolog. Communications from John McCarthy and Marvin Minsky suggested making common sense a focus. Mike Dunn collaborated on looking at the relationship of Bibliography the Boolean Fragment of Direct Logic to R-Mingle. Greg Hal Abelson and Gerry Sussman Structure and Restall pointed out that Direct Logic does not satisfy some Interpretation of Computer Programs 1984. Relevantist principles. Gerry Allwein and Jeremy Forth Luca Aceto and Andrew D. Gordon (editors). Algebraic made detailed comments and suggestions for improvement. Process Calculi: The First Twenty Five Years and Bob Kowalski and Erik Sandewall provided helpful Beyond Bertinoro, Italy, August, 2005. pointers and discussion of the relationship with their work. Sanjaya Addanki, Roberto Cremonini, and J. Scott Discussions with Ian Mason and Tim Hinrichs helped me Penberthy. “Reasoning about assumptions in graphs of develop Löb‘s theorem for Direct Logic. Scott Fahlman models” Readings in Qualitative Reasoning about suggested introducing the roadmap in the introduction of Physical Systems. Kaufman. 1989. the paper. At CMU, Wilfried Sieg introduced me to his Gul Agha. Actors: A Model of Concurrent Computation in very interesting work with Clinton Field on automating the Distributed Systems Doctoral Dissertation. 1986. search for proofs of the Gödel/Rosser incompleteness Gul Agha, Ian Mason, Scott Smith, and Carolyn Talcott. theorems. Also at CMU, I had productive discussions with “A foundation for Actor computation.” Journal of Jeremy Avigad, Randy Bryant, John Reynolds, Katia Functional Programming. 1997. Bruce Anderson. “Documentation for LIB PICO- Sycara, and Jeannette Wing. At my MIT seminar and PLANNER” School of Artificial Intelligence, Edinburgh afterwards, Marvin Minsky, Ted Selker, Gerry Sussman, University. 1972. and Pete Szolovits made helpful comments. Les Gasser, Chris Anderson. ―The End of Theory: The Data Deluge Mike Huhns, Victor Lesser, Pablo Noriega, Sascha Makes the Scientific Method Obsolete‖ Wired. June 23, Ossowski, Jaime Sichman, Munindar Singh, etc. provided 2009. valuable suggestions at AAMAS‘07. I had a very pleasant

March 21, 2010 Page 30 of 41

Alan Anderson and Nuel Belnap, Jr. (1975) Entailment: Patricia Blanchette “The Frege-Hilbert Controversy” The The Logic of Relevance and Necessity Princeton Stanford Encyclopedia of Philosophy December 7, 2007. University Press. Andreas Blass, Yuri Gurevich, Dean Rosenzweig, and Robert Anderson and Woody Bledsoe (1970) “A Linear Benjamin Rossman (2007a) Interactive small-step Format for Resolution with Merging and a New algorithms I: Axiomatization Logical Methods in Technique for Establishing Completeness” JACM 17. Computer Science. 2007. Aldo Antonelli (2006). “Non-monotonic Logic” Stanford Andreas Blass, Yuri Gurevich, Dean Rosenzweig, and Encyclopedia of Philosophy. March 2006. Benjamin Rossman (2007b) Interactive small-step A. I. Arruda. “Aspects of the historical development of algorithms II: Abstract state machines and the paraconsistent logic” In Paraconsistent Logic: Essays on characterization theorem. Logical Methods in Computer the Inconsistent Philosophia Verlag. 1989 Science. 2007. William Aspray “Interview with J. Barkley Rosser and George Boole. An Investigation of the Laws of Thought Stephen C. Kleene” The Princeton Mathematics 1853. http://www.gutenberg.org/etext/15114 Community in the 1930s Transcript PMC23 1985. Geof Bowker, Susan L. Star, W. Turner, and Les Gasser, William Athas and Nanette Boden “Cantor: An Actor (Eds.) Social Science Research, Technical Systems and Programming System for Scientific Computing” Cooperative Work Lawrence Earlbaum. 1997. Proceedings of the NSF Workshop on Object-Based Robert Boyer (1971) Locking: A Restriction of Resolution Concurrent Programming. 1988. Special Issue of Ph. D. University of Texas at Austin. Fisher Black. A Deductive Question Answering System SIGPLAN Notices. . Thesis. 1964. Henry Baker. Actor Systems for Real-Time Computation Daniel Bobrow and Bertram Raphael. “New programming MIT EECS Doctoral Dissertation. January 1978. languages for Artificial Intelligence research” ACM Henry Baker and Carl Hewitt: Laws for Communicating Computing Surveys. 1974. Parallel Processes IFIP. August 1977. Jean-Pierre Briot. From objects to actors: Study of a Henry Baker and Carl Hewitt ―The Incremental Garbage limited symbiosis in Smalltalk-80 Rapport de Recherche Collection of Processes.‖ Symposium on Artificial 88-58, RXF-LITP. Paris, France. September 1988. Intelligence Programming Languages. SIGPLAN Maurice Bruynooghe, Luís Moniz Pereira, Jörg Siekmann, Notices. August 1977. ― Maarten van Emden. “A Portrait of a Scientist as a Bob Balzer. “Tolerating Inconsistency” 13th International Computational Logician” Computational Logic: Logic Conference on Software Engineering. 1991. Programming and Beyond: Essays in Honour of Robert Bruce Baumgart. “Micro-Planner Alternate Reference A. Kowalski, Part I Springer. 2004. Manual” Stanford AI Lab Operating Note No. 67, April Martin Caminda. “On the Issue of Contraposition of 1972. Defeasible Rules” COMMA’08. JC Beall and Greg Restall. Logical Pluralism Oxford Andrea Cantini “Paradoxes and Contemporary Logic” The University Press. 2006. Stanford Encyclopedia of Philosophy October 16, 2007. Michael Beeson. “Lambda Logic” Lecture Notes in George Cantor .―Diagonal Argument‖ German Artificial Intelligence 3097. Springer. 2004. Mathematical (Deutsche Mathematiker- Francesco Berto The Gödel Paradox and Wittgenstein’s Vereinigung) (Bd. I, S. 75-78 ) 1890-1. Reasons Philosophia Mathematica (III) 17. 2009. Rudolph Carnap. Logische Syntax der Sprache. (The Leopoldo Bertossi, et al., eds. Inconsistency Tolerance Logical Syntax of Language Open Court Publishing Springer. 2004. 2003) 1934. Philippe Besnard and Anthony Hunter. “Quasi-classical and Andrew Gordon. “Mobile Ambients” Logic: Non-trivializable classical reasoning from Foundations of Software Science and Computational inconsistent information” Symbolic and Quantitative Structures Springer, 1998. Approaches to Reasoning and Uncertainty 1995. Lewis Carroll “What the Tortoise Said to Achilles” Mind Philippe Besnard and Torsten Schaub. “Significant 4. No. 14. 1895. Inferences: Preliminary Report. Lewis Carroll Through the Looking-Glass Macmillan. http://www.cs.uni-potsdam.de/wv/pdfformat/bessch00a.pdf 1871 Jean-Yves Bėziau, Walter Carnielli, and Dov Gabbay. Ed. Carlo Cellucci “Gödel's Incompleteness Theorem and the Handbook of Paraconsistency. College Publications Philosophy of Open Systems” Kurt Gödel: Actes du Kings College London. 2007 Colloque, Neuchâtel 13-14 juin 1991, Travaux de Fisher Black. A deductive question answering system, logique N. 7, Centre de Recherches Sémiologiques, Harvard University Thesis. 1964. University de Neuchâtel. Simon Blackburn and Keith Simmons (1999) Truth Oxford http://w3.uniroma1.it/cellucci/documents/Goedel.pdf University Press. Carlo Cellucci “The Growth of Mathematical Knowledge: H. Blair and V. S. Subrahmanian. “Paraconsistent Logic An Open World View” The growth of mathematical Programming”. Theoretical Computer Science, 68(2) knowledge Kluwer. 2000. 1989.

March 21, 2010 Page 31 of 41

Alonzo Church “A Set of postulates for the foundation of Reny Descartes (1644) Principles of Philosophy (English logic (1)” Annals of Mathematics. Vol. 33, 1932. translation in The Philosophical Writings of Descartes “A Set of postulates for the foundation of Cambridge University Press 1985). logic (2)” Annals of Mathematics. Vol. 34, 1933. Harry Deutsch “A Note on the Decidability of a Strong Alonzo Church The Calculi of Lambda-Conversion Relevant Logic” Studia Logica Vol. 44. No. 2. 1985 Princeton University Press. 1941. Edsger Dijkstra. A Discipline of Programming. Prentice Will Clinger. Foundations of Actor Semantics MIT Hall. 1976. Mathematics Doctoral Dissertation. June 1981. Kosta Dōzen. “Logical Constants as Punctuation Marks” Alain Colmerauer and Philippe Roussel. “The birth of Notre Dame Journal of Formal Logic. Summer 1989. Prolog” History of Programming Languages ACM Paul du Bois-Reymond-1880 “Der Beweis des Press. 1996 Fundamentalsatzes der Integralrechnung” F. S. Correa da Silva, J. M. Abe, and M. Rillo. “Modeling Mathematische Annalen Vol. 16. 1880. Paraconsistent Knowledge in Distributed Systems”. Michael Dummett (1973). “The Justification of Deduction” Technical Report RT-MAC-9414, Instituto de in Truth and other Enigmas Duckworth. 1978. Matematica e Estatistica, Universidade de Sao Paulo, Mike Dunn and Greg Restall. “Relevance Logic” in The 1994. Handbook of Philosophical Logic, second edition. Dov James Crawford and Ben Kuipers. “Negation and proof by Gabbay and Franz Guenther (editors), Kluwer. 2002. contradiction in access-limited logic.” AAAI-91. Ralph Waldo Emerson. “Self Reliance “ Essays—First “Some Aspects of the Problem of Series. 1841. Mathematical Rigor” Bulletin of the American Pascal Engel. “Dummett, Achilles and the Tortoise” The Mathematical Society Vol. 4. 1941. philosophy of Michael Dummett Open Court. 2007. Haskell Curry. “The combinatory foundations of Euclid. The Thirteen Books of Euclid's Elements. (3 Vol. mathematics” Journal of Symbolic Logic. 1942. translated by Thomas Heath. Cambridge University Michael Cusumano and Richard Selby, R. Microsoft Press. 1925). Circa 300BC. Secrets: How the World’s Most Powerful Software Scott Fahlman. A Planning System for Robot Construction Company Creates Technology, Shapes Markets, and Tasks MIT AI TR-283. June 1973. Manages People. Free Press. 1995 Adam Farquhar, Anglela Dappert, Richard Fikes, and Inconsistent Formal Systems (Sistemas Wanda Pratt. “Integrating Information Sources Using Formais Inconsistentes in Portuguese) Doctoral Context” Logic Knowledge Systems Laboratory. KSL- dissertation. University of Paraná. 1963. 95-12. January, 1995. Ole-Johan Dahl and Kristen Nygaard. “Class and subclass (1984a) “Toward Useful Type-Free declarations” IFIP TC2 Conference on Simulation Theories, I” in Recent Essays on Truth and the Liar Programming Languages. May 1967. Paradox. Ed. Robert Martin (1991) Claraendon Press. Carlos Damásio and Luís Pereira. “A Model Theory for Solomon Feferman (1984b) “Kurt Gödel: Conviction and Paraconsistent Logic Programming” Portuguese Caution” Philosophia Naturalis Vol. 21. Conference on Artificial Intelligence 1995. Solomon Feferman. "Reflecting on incompleteness", Julian Davies. “Popler 1.5 Reference Manual” University Journal of Symbolic Logic. 1991 of Edinburgh, TPU Report No. 1, May 1973. Solomon Feferman (1998) In the Light of Logic Oxford Ernest Davis. “The Naïve Physics Perplex” AI Magazine, University Press. Winter 1998. Solomon Feferman .”Logic, Logics, and Logicism” Notre Ernest Davis and Leora Morgenstern. “A First-Order Dame Journal of Formal Logic. V 40. 199. Theory of Communication and Multi-Agent Plans” Solomon Feferman (2000) “Does reductive proof theory Journal of Logic and Computation, Vol. 15, No. 5, 2005. have a viable rationale?” Erkenntnis 53. John Dawson (1997) Logical Dilemmas. The Life and Solomon Feferman (2004) “Tarski‟s Conceptual Analysis Work of Kurt Gödel AK Peters. for Semantical Notions” Sémantique et Épistémologie John Dawson. “What Hath Gödel Wrought?” Synthese. http://math.stanford.edu/~feferman/papers/conceptanaly Jan. 1998. sco.pdf Walter Dean and Hdenori Kurokawa. “Knowledge, proof, Solomon Feferman (2006a) “The nature and significance of and the Knower” TARK‟09, Gödel's incompleteness theorems” lecture for the Princeton Richard Dedekind (1888) “What are and what should the Institute for Advanced Study Gödel Centenary Program, numbers be?” (Translation in From Kant to Hilbert: A Nov. 17, 2006. Source Book in the Foundations of Mathematics. Oxford Solomon Feferman (2006b) “Lieber Herr Bernays! Lieber University Press. 1996) Braunschweig. Herr Gödel! Gödel on finitism, constructivity and Richard De Millo, Richard Lipton and Alan Perlis “Social Hilbert's program” submitted version of lecture for the Processes and Proofs of Theorems and Programs” Gödel centenary conference, Horizons of Truth, Vienna, CACM. May 1979. 27-29 April 2006.

March 21, 2010 Page 32 of 41

Solomon Feferman (2006c) “Are there absolutely Informatik-Berichete 196. Humboldt University of Berlin. unsolvable problems? Gödel's dichotomy” Philosophia January 2006. Mathematica Series III vol. 14. Kurt Gödel (1930) “The completeness of the axioms of the Solomon Feferman (2007a) “Axioms for determinateness functional calculus of logic” (translated in A Source and truth” Book in Mathematical Logic, 1879-1931. Harvard Univ. Solomon Feferman (2007b) “Gödel, Nagel, minds and Press. 1967) machines” October 25, 2007. Kurt Gödel (1931) “On formally undecidable propositions Alfred Tarski: Life and Logic. Cambridge University Press. of Principia Mathematica” in A Source Book in 2004. Mathematical Logic, 1879-1931. Translated by Jean van Dieter Fensel and Frank van Harmelen. “Unifying Heijenoort. Harvard Univ. Press. 1967. Reasoning and Search to Web Scale” IEEE Internet Kurt Gödel (1965) “On Undecidable Propositions of Computing. March/April 2007. Formal Mathematical Systems” (a copy of Gödel‟s 1931 Paul Feyerabend. Killing Time: The Autobiography of Paul paper with his corrections of errata and added notes) in Feyerabend. University Of Chicago Press. 1995. The Undecidable: Basic Papers on Undecidable . “A Revenge-Immune Solution to the Propositions, Unsolvable problems and Computable Semantic Paradoxes.” Journal of Philosophical Logic, Functions Martin Davis editor. Raven Press 1965. April 2003 Kurt Gödel (1944) “Russell‟s Mathematical Logic” in Kit Fine. “Analytic Implication” Notre Dame Journal of Philosophy of Mathematics(2nd ed.) Cambridge Formal Logic. April 1986. University Press. Frederic Fitch. Symbolic Logic: an Introduction. Ronald Dina Goldin and Peter Wegner. “The Interactive Nature of Press. 1952. Computing: Refuting the Strong Church-Turing Thesis” J.M. Foster and E.W. Elcock. (1969) “ABSYS: An Minds and Machines March 2008. Incremental Compiler for Assertions” Machine Solomon Golomb and Leonard Baumert. (1965) Intelligence 4. Edinburgh University Press. “Backtrack Programming” JACM. Vol. 12 No. 4. Nissim Francez, Tony Hoare, Daniel Lehmann, and C. Cordell Green: “Application of Theorem Proving to Willem-Paul de Roever. “Semantics of nondeterminism, Problem Solving” IJCAI 1969. concurrency, and communication” Journal of Computer Steve Gregory. “Concurrent Logic Programming Before and System Sciences. December 1979. ICOT: A Personal Perspective” August 15, 2007. Torkel Franzén. Inexhaustibility AK Peters. 2004 http://www.cs.bris.ac.uk/~steve/papers/ALP/CLPbeforeICOT.pdf Torkel Franzén. Gödel’s Theorem: an incomplete guide to Irene Greif. Semantics of Communicating Parallel its use and abuse. A K Peters. 2005. Processes MIT EECS Doctoral Dissertation. August Gottlob Frege (1915) “My Basic Logical Insights” 1975 Posthumous Writings University of Chicago Press. 1979. Ramanathan Guha. Contexts: Formalization and Some Kazuhiro Fuchi, Robert Kowalski, Kazunori Ueda, Ken Applications PhD thesis, Stanford University, 1991. Kahn, Takashi Chikayama, and Evan Tick. “Launching Ronald Harrop. “Some structure results for propositional the new era”. CACM. 1993. calculi” Journal of Symbolic Logic, 30. 1965. Dov Gabbay (ed.) What is a Logical System? Oxford. W. D. Hart. “Skolem Redux” Notre Dame Journal of. 1994. Formal Logic. 41, no. 4. 2000. John Gay. “The Elephant and the Bookseller” Fifty-one Pat Hayes. “Computation and Deduction” Mathematical Fables in Verse 1727 Foundations of Computer Science: Proceedings of Michael Gelfond and Vladimir Lifschitz. “Logic programs Symposium and Summer School, Štrbské Pleso, High with classical negation” International Conference on Tatras, . September 1973. Logic Programming. MIT Press. 1990. Pat Hayes “Some Problems and Non-Problems in Gerhard Gentzen. “Provability and nonprovability of Representation Theory” AISB. Sussex. July, 1974. restricted transfinite induction in elementary number Pat Hayes. “The Naïve Physics Manifesto”. Expert theory” (Collected Papers of Gerhard Gentzen. North- Systems in the Microelectronic Age. Edinburgh Holland. 1969) Habilitation thesis. Göttingen. 1942. University Pres. 1979. Gerhard Gentzen (1935) “Investigations into Logical Pat Hayes. 1985a. “The Second Naïve Physics Manifesto” Deduction.” (Collected Papers of Gerhard Gentzen. Formal Theories of the Commonsense World. Ablex. North-Holland. 1969) 1985. Matt Ginsberg. “AI and nonmonotonic reasoning” in Pat Hayes. 1985b. “Naïve Physics 1: Ontology for Handbook of Logic in Artificial Intelligence and Logic Liquids” Formal Theories of the Commonsense World. Programming Clarendon Press. 1994. Ablex. 1985. Jean-Yves Girard. The Blind Spot: Lectures on proof- Pat Hayes. “Contexts in context.” Contexts in Knowledge theory Roma Tre. 2004. Representation and Natural Language. AAAI. 1997. Andreas Glausch and Wolfgang Reisig. Distributed Pat Hayes. ―Context .‖ Commonsense 2007. Abstract State Machines and Their Expressive Power Joseph Heller. Catch-22. Everyman's Library. 1995.

March 21, 2010 Page 33 of 41

Leon Henkin “A Problem Concerning Provability” Journal Paraconsistency” Coordination, Organizations, of Symbolic Logic, Vol. 17 (1952). Institutions, and Norms in Agent Systems III Jaime Carl Hewitt. “Planner: A Language for Proving Theorems Sichman, Pablo Noriega, Julian Padget and Sascha in Robots” IJCAI 1969. Ossowski (ed.). Springer-Verlag. Carl Hewitt. “Procedural Embedding of Knowledge In http://organizational.carlhewitt.info/ Planner” IJCAI 1971. Carl Hewitt (2008d) “Middle Carl Hewitt, Peter Bishop and Richard Steiger. “A Programming” ArXiv 0904.3036 Universal Modular Actor Formalism for Artificial Carl Hewitt (2008d). “Norms and Commitment for ORGs Intelligence” IJCAI 1973. (Organizations of Restricted Generality): Direct Logi(TM Carl Hewitt and Henry Baker Laws for Communicating and Participatory Grounding CheckingTM” ArXiv Parallel Processes IFIP. August 1977. 0906.2756 Carl Hewitt. “Viewing Control Structures as Patterns of Carl Hewitt (2008e). ORGs for Scalable, Robust, Privacy- Passing Messages” Journal of Artificial Intelligence. Friendly Client Cloud Computing IEEE Internet June 1977. Computing September/October 2008. Carl Hewitt and Peter de Jong. “Open Systems”' Carl Hewitt (2009a) Perfect Disruption: The Paradigm Perspectives on Conceptual Modeling, Brodie, Shift from Mental Agents to ORGs IEEE Internet Mylopoulos, and Schmidt (eds.), Springer-Verlag, 1983. Computing. Jan/Feb 2009. Carl Hewitt. “The Challenge of Open Systems” Byte Carl Hewitt (2009b) A historical perspective on developing Magazine. April 1985. foundations for client cloud computing: The Paradigm Carl Hewitt (1986). “Offices Are Open Systems” ACM Shift from "Inconsistency Denial" to "Rapid Recovery" Transactions on Information Systems 4(3) (Revised version of "Development of Logic Carl Hewitt (1990). “Towards Open Information Systems Programming: What went wrong, What was done about Semantics” International Workshop on Distributed it, and What it might mean for the future" AAAI Artificial Intelligence Workshop on What Went Wrong. AAAI-08.) ArXiv. Carl Hewitt (1991). “Open Information Systems January 30, 2009. Semantics” Journal of Artificial Intelligence. January Carl Hewitt (2009c) ―ActorScript™: Industrial strength 1991. integration of local and nonlocal concurrency for Client- Carl Hewitt and Jeff Inman. “DAI Betwixt and Between: cloud Computing‖ ArXiv. 0907.3330 From „Intelligent Agents‟ to Open Systems Science” David Hilbert. 1900. in ―Mathematical Developments IEEE Transactions on Systems, Man, and Cybernetics. Arising From Hilbert Problems‖ Proceedings of Nov. /Dec. 1991. Symposia in Pure Mathematics, Vol. 28. American Carl Hewitt and Gul Agha. “Guarded Horn clause Mathematical Society. 1976 languages: are they deductive and Logical?” David Hilbert (1926) ―Über das Unendliche‖ International Conference on Fifth Generation Computer Mathematische Annalen, 95: 161-90. (―On the Infinite‖ Systems. Ohmsha 1988. English translation in van Heijenoort. 1967). Carl Hewitt. (2006). “What is Commitment? Physical, David Hilbert and Paul Bernays. Grundlagen der Organizational, and Social” COIN@AAMAS’06. Mathematik I. (L'Harmattan edition 2001) 1934. (Revised version to be published in Springer Verlag David Hilbert and Paul Bernays. Grundlagen der Lecture Notes in Artificial Intelligence. Edited by Javier Mathematik II. (L'Harmattan edition 2001) 1939. Vázquez-Salceda and Pablo Noriega. 2007) April 2006. Tony Hoare. “Communicating Sequential Processes” Carl Hewitt (2007a). “Organizational Computing Requires CACM August, 1978. Unstratified Paraconsistency and Reflection” Tony Hoare. Communicating Sequential Processes. COIN@AAMAS. 2007. Prentice Hall. 1985. Carl Hewitt (2008a) ―A historical perspective on Tony Hoare. “The verifying compiler: A grand challenge developing foundations for privacy-friendly client cloud for computing research” JACM. January 2003. computing: The paradigm shift from ‗inconsistency Tony Hoare. Retrospective: An Axiomatic Basis for denial‘ to ‗semantic integration‖ (Revised version of Computer Programming CACM 2009. ―Development of Logic Programming: What went (2006) “Tarski‟s Truth Definitions” wrong, What was done about it, and What it might mean Stanford Encyclopedia of Philosophy. for the future‖ in Proceedings of What Went Wrong and Douglas Hofstadter. I am a Strange Loop Basic Books. Why edited by Mehmet Gőker and Daniel Shapiro, 2007. AAAI Press. 2008 pp 1-11) ArXiv. Jim Holt. “Code-Breaker” The New Yorker February 6, Carl Hewitt (2008b). “Norms and Commitment for ORGs 2006. (Organizations of Restricted Generality): Direct LogicTM Leon Horsten “Philosophy of Mathematics” The Stanford and Participatory Grounding CheckingTM” ArXiv Encyclopedia of Philosophy September 27, 2007. 0906.2756 Matthew Huntbach and Graem Ringwood. Agent-Oriented Carl Hewitt (2008c) “Large-scale Organizational Programming: From Prolog to Guarded Definite Computing requires Unstratified Reflection and Strong Clauses Sprinter. 1999.

March 21, 2010 Page 34 of 41

Daniel Ingalls. “The Evolution of the Smalltalk Virtual Imre Lakatos. “A renaissance of empiricism in the recent Machine” Smalltalk-80: Bits of History, Words of philosophy of mathematics?” Mathematics, Science and Advice. Addison Wesley. 1983. Epistemology. 1978. Alan Kay. “Personal Computing” in Meeting on 20 Years Imre Lakatos. Proofs and Refutations Cambridge of Computing Science Instituto di Elaborazione della University Press. 1976 Informazione, Pisa, Italy. 1975. Imre Lakatos. Mathematics, Science and Epistemology http://www.mprove.de/diplom/gui/Kay75.pdf edited by J. Worrall and G. Currie. Cambridge Jussi Ketonen and Richard Weyhrauch. “A decidable University Press. 1978. fragment of Predicate Calculus” Theoretical Computer Peter Landin. “A Generalization of Jumps and Labels” Science. 1984. UNIVAC Systems Programming Research Report. Thomas Kida. Don’t Believe Everything You Think: The 6 August 1965. (Reprinted in Higher Order and Symbolic Basic Mistakes We Make in Thinking Prometheus Books. Computation. 1998) 2006. Bruno Latour Science in Action: How to Follow Scientists Stephen Kleene and John Barkley Rosser “The and Engineers Through Society Harvard University inconsistency of certain formal logics” Annals of Press. 1987. Mathematics Vol. 36. 1935. Hannes Leitgeb. “What theories of truth should be like (but Stephen Kleene Recursive Predicates and Quantifiers cannot be)” Philosophy Compass 2 (2). 2007. American Mathematical Society Transactions. 1943 Doug Lenat “CYC: Lessons Learned in Large-Scale Morris Kline. Mathematical thought from ancient to Ontological Engineering” November 17, 2005. modern times . 1972. http://ontolog.cim3.net/file/resource/presentation/DougL Frederick Knabe. “A Distributed Protocol for Channel- enat_20051117/Cyc-DougLenat_20051117.ppt Based Communication with Choice” PARLE 1992. Isaac Levi. Direct Inference Journal of Philosophy. Jan. Bill Kornfeld and Carl Hewitt. “The Scientific Community 1977. Metaphor” IEEE Transactions on Systems, Man, and Steven Levy Hackers: Heroes of the Computer Revolution Cybernetics. January 1981. Doubleday. 1984. Bill Kornfeld. Parallelism in Problem Solving MIT EECS Philip Lewis. “Jonathon von Neumann and EDVAC” Nov. 8. Doctoral Dissertation. August 1981. 2004. www.cs.berkeley.edu/~christos/classics/paper.pdf Robert Kowalski “Predicate Logic as Programming Henry Lieberman. “A Preview of Act 1” MIT AI memo Language” Memo 70, Department of Artificial 625. June 1981. Intelligence, Edinburgh University. 1973 James Lighthill. "Artificial Intelligence: A General Robert Kowalski (1979) “Algorithm = Logic + Control” Survey" Artificial Intelligence: a paper symposium. UK CACM. July 1979. Science Research Council. 1973 Robert Kowalski (1986). “The limitation of logic” ACM Martin Löb. “Solution of a problem of .” Annual Conference on Computer Science. Journal of Symbolic Logic. Vol. 20. 1955. Robert Kowalski (1973) “Predicate Logic as Programming Per Martin-Löf “Verificationism then and now” The Language” Memo 70, Department of AI, Edinburgh Foundational Debate. Kluwer. 1995. University. Van McGee “Counterexample to Modus Ponens” The Robert Kowalski 1988a. “The Early Years of Logic Journal of Philosophy 82. 1985. Programming” CACM. January 1988. Eckart Menzler-Trott. Logic’s Lost Genius: The Life of Robert Kowalski (1988b). “Logic-based Open Systems” Gerhard Gentzen American Mathematical Society. 2007. Representation and Reasoning. Stuttgart Conference Donald Loveland. Report of a Workshop on the Future Workshop on Discourse Representation, Dialogue Directions of Automated Deduction NSF 1997. tableaux and Logic Programming. 1988. http://www.cs.duke.edu/AutoDedFD/report/ http://www.doc.ic.ac.uk/~rak/papers/open.pdf Leopold Löwenheim (1915) ―Über Möglichkeiten im Robert. Kowalski and Francesca Toni. “Abstract Relativkalkül‖ Mathematische Annalen 76. (Translated Argumentation” Artificial Intelligence and Law. 1996 as ―On possibilities in the calculus of relatives"‖in Jean Robert Kowalski (2006) “The Logical Way to be van Heijenoort, 1967. From Frege to Gödel: A Source Artificially Intelligent.” CLIMA VI. Springer Verlag. Book in Mathematical Logic, 1879-1931. Harvard Univ. Robert Kowalski (2007) “What is Logic Programming?” Press) http://en.wikipedia.org/wiki/Talk:Logic_programming# Michael Lynch The Nature of Truth MIT Press. 2001. What_is_Logic_Programming.3F Donald MacKenzie. Mechanizing Proof. MIT Press. 2001. Richard Kraut. “Plato” Stanford Encyclopedia of Edwin Mares. “Relevance Logic” Stanford Encyclopedia Philosophy. 2004. of Philosophy. Jan. 2006. Ernest Kurtz and Katherine Ketcham. The Spirituality of Roger Maddux Relevance Logic and the calculus of Imperfection: Storytelling and the Search for Meaning relations International Conference on. Order, Algebra Bantam 1993. and Logics. Vanderbilt. 2007. Henry Kyburg and Choh Teng) Uncertain Inference, David Malone Dangerous Knowledge BBC Video. 2007 Cambridge University Press. 2001 http://video.google.com/videoplay?docid=-3503877302082311448

March 21, 2010 Page 35 of 41

Edwin Mares. Relevant Logic Cambridge University Press. Marvin Minsky (ed.) Semantic Information Processing 2007 MIT Press. 1968. Per Martin-Löf. “Verificationism then and now” in W. De Marvin Minsky and Seymour Papert. “Progress Report on Pauli-Schimanovich, et al., eds. The Foundational Artificial Intelligence” MIT AI Memo 252. 1971. Debate Kluwer. 1995. Marvin Minsky, Push Singh, and Aaron Sloman: “The St. John McCarthy. “Programs with common sense” Thomas Common Sense Symposium: Designing Symposium on Mechanization of Thought Processes. Architectures for Human-Level Intelligence” AI National Physical Laboratory. Teddington, England. Magazine. Summer 2004. 1958. Charles Morgan, , “The Nature of Nonmonotonic John McCarthy. “Situations, actions and causal laws” Reasoning” Minds and Machines 2000 Stanford Artificial Intelligence Project: Memo 2. 1963 Chris Mortensen. “The of Disjunctive Syllogism John McCarthy and Pat Hayes. “Some Philosophical is Not So Easily Proved.” Notre Dame Journal of Problems from the Standpoint of Artificial Intelligence” Formal Logic January 1983. Machine Intelligence 4. 1969 Chris Mortensen. Inconsistent Mathematics Kluwer John McCarthy, Paul Abrahams, Daniel Edwards, Timothy Academic Publishers. 1995. Hart, and Michael Levin. Lisp 1.5 Programmer’s Allen Newell and Herbert Simon. “The logic theory Manual MIT Computation Center and Research machine: A complex information processing system” Laboratory of Electronics. 1962. IRE Transactions on Information Theory IT-2:61-79. John McCarthy. “Review of „Artificial Intelligence: A 1956. General Survey” Artificial Intelligence: a paper Peter Patel-Schneider A decidable first-order logic for symposium. UK Science Research Council. 1973. knowledge representation IJCAI‟85. John McCarthy. “Circumscription—a form of and Carl Hewitt. “Comparative nonmonotonic reasoning.” Artificial Intelligence. 1980. Schematology” MIT AI Memo 201. August 1970. John McCarty. “Applications of circumscription to Judea Pearl, Probabilistic Reasoning in Intelligent formalizing common sense knowledge” Artificial Systems: Networks of Plausible Inference Morgan Intelligence. 1986. Kaufmann. 1988 John McCarthy. “Generality in Artificial Intelligence” Carl Petri. Kommunikation mit Automate. Ph. D. Thesis. CACM. December 1987. University of Bonn. 1962. John McCarthy. “A logical AI Approach to Context” Andrew Pitts. “Categorical Logic” in Algebraic and Technical note, Stanford Computer Science Department, Logical Structures Oxford University Press. 2000. 1996. Gordon Plotkin. “A powerdomain construction” SIAM John McCarthy. Sterile Containers September 8, 2000. Journal of Computing September 1976. http://www.ai.sri.com/~rkf/designdoc/sterile.ps George Polya (1957) Mathematical Discovery: On John McCarthy. “What is Artificial Intelligence” September 1, Understanding, Learning and Teaching Problem Solving 2007. Combined Edition Wiley. 1981. http://www-formal.stanford.edu/jmc/whatisai/whatisai.html Karl Popper(1962). Conjectures and Refutations Basic L. Thorne McCarty. “Reflections on TAXMAN: An Books. Experiment on Artificial Intelligence and Legal Karl Popper. (1934) Logik der Forschung, Springer. (Logic Reasoning” Harvard Law Review Vol. 90, No. 5, March of Scientific Discovery Routledge 2002). 1977. Graham Priest. “Dialetheism” The Stanford Encyclopedia Drew McDermott and Gerry Sussman. “The Conniver of Philosophy (Winter 2004 Edition) Reference Manual” MIT AI Memo 259. May 1972. H. Prakken and G. Sartor. “A dialectical model of Drew McDermott. The Prolog Phenomenon ACM assessing conflicting arguments in legal reasoning” SIGART Bulletin. Issue 72. July, 1980. Artificial Intelligence and Law 1996. Vann McGee “In Praise of the Free Lunch: Why Graham Priest, and Richard Routley “The History of Disquotationalists Should Embrace Compositional Paraconsistent Logic” in Paraconsistent Logic: Essays Semantics” Self-Reference CSLI Publications. 2006. on the Inconsistent Philosophia Verlag. 1989. Casey McGinnis “Paraconsistency and logical hypocrisy” Graham Priest. “Paraconsistent Logic” Handbook of The Logica Yearbook Praha. Philosophical Logic Volume 6, 2nd ed. Kluwer. 2002 http://www.geocities.com/cnmcginnis/ParaLogHyp.pdf Graham Priest and Koji Tanaka. “Paraconsistent Logic” George Milne and . “Concurrent processes The Stanford Encyclopedia of Philosophy. Winter 2004. and their syntax” JACM. April, 1979. Graham Priest. “Wittgenstein‟s Remarks on Gödel‟s Robert Milne and Christopher Strachey. A Theory of Theorem” in Wittgenstein’s Lasting Significance Programming Language Semantics Chapman and Hall. Routledge. 2004. 1976. Graham Priest. “60% Proof: Lakatos, Proof, and Robin Milner '”Elements of interaction: Turing award Paraconsistency” 2006 lecture'” CACM. January 1993. http://garnet.acns.fsu.edu/~tan02/OPC%20Week%20Thr ee/Priest.pdf

March 21, 2010 Page 36 of 41

Michael Rathjen. “The art of ordinal analysis” Proceedings of Dana Scott and Christopher Strachey. Toward a the International Congress of Mathematicians 2006 mathematical semantics for computer languages Oxford Stephen Reed and Doug Lenat. “Mapping Ontologies into Programming Research Group Technical Monograph. Cyc” AAAI 2002 Conference Workshop on Ontologies for PRG-6. 1971 the Semantic Web July 2002. Thoralf Skolem (1920) ―Logico-combinatorial Ray Reiter. “A logic for default reasoning” Artificial investigations on the satisfiability or provability of Intelligence 13:81. 1980. mathematical propositions: A simplified proof of a Ray Reiter. Knowledge in Action: Logical Foundations for theorem by Löwenheim‖ (English translation in Jean van Specifying and Implementing Dynamical Systems. MIT Heijenoort, 1967. From Frege to Gödel: A Source Book Press, 2001. in Mathematical Logic, 1879-1931. Harvard Univ. Press) Greg Restall (2006). “Curry‟s Revenge: the costs of non- Natarajan Shankar. , Machines, and classical solutions to the paradoxes of self-reference” (to Gödel’s Proof Cambridge University Press. 1994. appear in The Revenge of the Liar ed. J.C. Beall. Ehud Shapiro. “The family of concurrent logic Oxford University Press. 2007) July 12, 2006. programming languages” ACM Computing Surveys. http://consequently.org/papers/costing.pdf September 1989 John Alan Robinson, “A Machine-Oriented Logic Based Stewart Shapiro. “Lakatos and logic Comments on on the Resolution Principle.” CACM. 1965. Graham Priest‟s „60% proof: Lakatos, proof, and Bill Roscoe. The Theory and Practice of Concurrency paraconsistency‟” Preprint 2006 Prentice-Hall. Revised 2005. http://garnet.acns.fsu.edu/~tan02/OPC%20Week%20Th Scott Rosenberg. Dreaming in Code. Crown Publishers. ree/Commentary%20on%20Priest.pdf#search=%22par 2007. aconsistency%202006%20filetype%3Apdf%22 Marcus Rossberg. “Second-Order Logic” Socrates Teaching Mobility Intensive Seminar, University of Wilfried Sieg and Clinton Field. “Automated search for Helsinki, 16-19 May, 2005. Gödel proofs.” Annals of Pure and Applied Logic. http://www.st-andrews.ac.uk/~mr30/SOL/SOL3.pdf 2005. John Barkley Rosser. “Extensions of Some Theorems of Aaron Sloman. “Must Intelligent Systems Be Scruffy?” Gödel and Church” Journal of Symbolic. Logic. 1(3) Evolving Knowledge in Natural Science and Artificial 1936. Intelligence. Pitman. 1990. Philippe Rouchy (2006). “Aspects of PROLOG History: Peter Smith. An Introduction to Gödel’s Theorems. Draft. Logic Programming and Professional Dynamics” 2006. http://www.godelbook.net/ TeamEthno-Online Issue 2, June 2006. Lee Smolin. The Trouble with Physics: The Rise of String Richard Routley (1979) “Dialectical Logic, Semantics and Theory, the Fall of a Science, and What Comes Next Metamathematics” Erkenntnis 14 Houghton Mifflin. 2006 Richard Routley Relevant Logics and Their Rivals 1 Craig Smorynski. “The Incompleteness Theorems” Ridgeview. 2003. Handbook of Mathematical Logic. North Holland. Jeff Rulifson, Jan Derksen, and Richard Waldinger. “QA4, 1977. A Procedural Calculus for Intuitive Reasoning” SRI AI Raymond Smullyan Gödel‟s Incompleteness Theorems Center Technical Note 73. November 1973. Oxford Univ. Press. 1991. . “Mathematical logic as based on the Michael Smyth. Power domains Journal of Computer and theory of types.”. American Journal of Mathematics. System Sciences. 1978. 1908. Gerry Sussman, Terry Winograd and Eugene Charniak. Earl Sacerdoti, et. al., “QLISP A Language for the “Micro-Planner Reference Manual (Update)” AI Memo Interactive Development of Complex Systems” AFIPS. 203A, MIT AI Lab, December 1971. 1976. Gerry Sussman and Guy Steele Scheme: An Interpreter for Eric Sandewall. “A functional approach to non-monotonic Extended Lambda Calculus AI Memo 349. December, logic” Computational Intelligence. Vol. 1. 1985. Eric Sandewall. “ From Systems to Logic in the Early 1975. University of Illinois Press. 1977. Development of Nonmonotonic Reasoning” CAISOR. Frederick Suppe, ed. ―The Structure of Scientific Theories‖ July, 2006. University of Illinois Press. 1977. Davide Sangiorgi and David Walker. The Pi-Calculus: A Alfred Tarski Introduction to Logic Oxford University Theory of Mobile Processes Cambridge University Press. 1940 (and many subsequent editions). Press. 2001. Alfred Tarski (1944) ―The semantic conception of truth Marek Sergot. “Bob Kowalski: A Portrait” Computational and the foundations of semantics‖ Philosophy and Logic: Logic Programming and Beyond: Essays in Phenomenological Research 4 (Reprinted in Readings in Honour of Robert A. Kowalski, Part I Springer. 2004. Philosophical Analysis, Appleton-1944) Dana Scott. “The Future of Proof” LICS 2006. Alfred Tarski and Robert Vaught (1957). “Arithmetical http://www.easychair.org/FLoC- extensions of relational systems” Compositio 06/scott_goedel_keynote_floc06.pdf Mathematica 13.

March 21, 2010 Page 37 of 41

Paul Tillich. Courage to be Yale University Press. 2000. Alan Turing. ―On computable numbers, with an application to the Entscheidungsproblem.‖ Proceedings London Math Society. 1936. Shunichi Uchida and Kazuhiro Fuchi (1992). Proceedings of the FGCS Project Evaluation Workshop Institute for New Generation Computer Technology (ICOT) (1967) From Frege to Gödel. A Source Book in Mathematical Logic, 1897-1931, Harvard University Press. Moshe Vardi “More Debate, Please!” CACM. Jan. 2010. Rineke Verbrugge “Provability Logic”, The Stanford Encyclopedia of Philosophy Summer 2003 Edition. Richard Waldinger and R. Lee (1969) “PROW: a step toward automatic program writing” IJCAI‟69. Peter Whalley. ―Modifying the metaphor in order to improve understanding of control languages—the little- person becomes a cast of actors.‖ British Journal of Educational Technology. 2006. Bill Wilson (1952) Twelve Steps and Twelve Traditions Alcoholics Anonymous. Terry Winograd. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT AI TR-235. January 1971. Ludwig Wittgenstein. 1956. Bemerkungen ¨uber die Grundlagen der Mathematik/Remarks on the Foundations of Mathematics, Revised Edition Basil Blackwell. 1978 Larry Wos, George Robinson, Daniel Carson (1965) “Efficiency and Completeness of the Set of Support Strategy in Theorem Proving” JACM 12(4). Noson Yanofsky. “A universal approach to self-referential paradoxes, incompleteness and fixed points” Bulletin of Symbolic Logic 9 No. 3. 2003. Aki Yonezawa. Specification and Verification Techniques for Parallel Programs Based on Message Passing Semantics MIT EECS Ph. D. December 1977. Ernst Zermelo. “Investigations in the foundations of set theory” (English translation in From Frege to Gödel: A Source Book in Mathematical Logic, 1879-1931 Ed. Jean van Heijenoort 1967). 1908.

March 21, 2010 Page 38 of 41

Appendix. Additional Principles of Direct Logic (if False then E1 else E2)  E2 Finally there are simple ideas of which no (1  2)  (2  3)) ⇨ (1  3) definition can be given; there are also axioms (λ(x) F(x)))  F()  reduction

or postulates, or in a word primary 1 | 2  1 principles, which cannot be proved and have  nondeterministic reduction to first alternative no need of proof. Gottfried Leibniz  |   1 2 2 This appendix contains additional principles of Direct  nondeterministic reduction to second alternative Logic. F1  F2 ⇨ F1()  F2()  an application reduces if its operator reduces

Equality 1  2 ⇨ F(1)  F(2) Note that, in Direct Logic, equality (=) is not  an application reduces if its operand reduces defined on (abstract) propositions. 1  2 ⇨ (1  2)

1  2 ⇔ ((1  2  2)  (1  1 =2)) Direct Logic has the following usual principles for  1 ⇔ (   (   ) ⇨  = ) equality: 1 2 1 1  ⇨ E=E  = 1 1  ⇨  (   )  = ⇨  = 1 1 2 1 2 2 1  ⇨ (λ(x) E) (1=2  2=3)⇨ 1=3 E1=E2 ⇨ (1E1 ⇔ 1E2) Nondeterministic λ-calculus (E1= =E2) ⇔ (E1  E2) Direct Logic makes use of the nondeterministic (1=2  1F) ⇨ F(1)=F(2) λ-calculus as follows: (F1=F2  1) ⇨ F1()=F2()

o If E1 and E2 are expressions, then E1  E2 (E1 can P[E] ⇨ (1P  1E) reduce to E2 in the nondeterministic λ-calculus) is a (1=2  1P) ⇨ (P[1] ⇨ P[2]) proposition. 1F ⇨ F=(λ(x) F(x))  abstraction o If E is an expression, then E (E always converges in the nondeterministic λ-calculus) is a proposition. Set Theory o If E is an expression, then E (E is irreducible in The set of all sets in Direct Logic is called Sets and is the nondeterministic λ-calculus) is a proposition. axiomatised below. o If E and E are expressions, then E E (E can 1 2 1 2 1 x: x{ }  the empty set { } has no elements converge to E2 in the nondeterministic λ-calculus) is a proposition. sSets: { }s  { } is a subset of every set Since Direct Logic uses choice functions instead of o If E is an expression, then 1E (E reduces to exactly 1 expression in the nondeterministic λ- existential quantifiers, we have the following axiom: calculus) is a proposition. sSets: s{ } ⇨ Choice(s)s Note that SetsSets. 113 Reduction roundtripping can be expressed as follows: The basic axioms of set theory are: 114 ├ (   E   ⟻ ⟼ E) s1,s2Sets; x: s1s2 ⇨ (xs1 ⇨ xs2) T  if s1 is a subset of s2 ,then x is an element Basic axioms are as follows: of s1 implies x is an element of s2

(E = = E)  True s1,s2Sets: (s1={ }SubsetChoices2(s1)s2)⇨s1s2 (True = =False)  False where (False = =True)  False s1,s2Sets: s1≠{ } ⇨ SubsetChoices2(s1)s1

(if True then E1 else E2)  E1  if s1 is empty or the choice of an element of s1 (depending in an arbitrary way on s2) is also an element of s2 ,then s1 is a subset of 113 Reduction roundtripping says the reification of  has enough s2 information that abstracting back is reduction equivalent to .

114 E1 ⟻ ⟼E2 means that E1 ⟼E2 and E2 ⟼E1

March 21, 2010 Page 39 of 41

115 [Clinger 1981; later generalized in Hewitt 2006] answered x; s1,s2Sets: xs1s2 ⇔ (xs1  xs2) the question in the negative by giving a counterexample. x; s1,s2Sets: xs1s2 ⇔ (xs1  xs2) The counterexample is remarkable in that it violates the st x; s1,s2Sets: xs1-s2 ⇔ (xs1  xs2) compactness theorem for 1 order logic: x; y: x{y} ⇔x=y Any of sentences is consistent (the activation order and all arrival orders are discrete) and represents a The function Count is defined as follows: potentially physically realizable situation. But there is Count(s) ≡ an infinite set of sentences that is inconsistent with the discreteness of the combined order and does not if s={ } then 0 else 1+Count(s-{Choice(s)}) represent a physically realizable situation. sSets: Finite[s] ⇔ Count(s) The counterexample is not a problem for Direct Logic  a set s is finite if and only if Count(s) converges because the compactness theorem does not hold. The resolution of the problem is to take discreteness of the The integers  can be defined as follows using the combined order as an axiom of the Actor model:116 nondeterministic λ-calculus: e1,e2Events: Finite[{eEvents | e1 → e → e2}] IntegerGenerator() ≡ 0 | (1+IntegerGenerator())  IntegerGenerator() is the nondeterministic choice of Direct Logic is based on XML  0 and 1+IntegerGenerator() We speak in strings, but think in trees. 117 ---Nicolaas de Bruijin x: x ⇔ IntegerGenerator()x 118  x is an integer if and only if Integer converges to x The base domain of Direct Logic is XML . In Direct Logic, a dog is an XML dog, e.g., Noncompactness FidoDogsXML The Actor model makes use of two fundamental orders Unlike First Order Logic, there is no unrestricted on events [Baker and Hewitt 1977; Clinger 1981, Hewitt quantification in Direct Logic. So the proposition 2006]: dDogs Mammal[d] is about dogs in XML. The base 1. The activation order (≈≈>) is a fundamental order that equality built into Direct Logic is equality for XML, not models one event activating another (there is energy flow equality in some abstract “domain”. In this way Direct from an event to an event which it activates). The Logic does not have to take a stand on the various ways activation order is discrete: that dogs, photons, quarks and everything else can be considered “equal”! e ,e Events Finite[{eEvents | e ≈≈>e ≈≈>e }] 1 2 : 1 2 2. The arrival order of a serialized Actor x ( ) models 퐱 This axiomization omits certain aspects of standard XML, the (total) order of events in which a message arrives at e.g., attributes, namespaces, etc. x. The arrival order of each x is discrete: Two XML expressions are equal if and only if they are e1,e2Events: Finite[{eEvents | e1 e e2}] 퐱 퐱 both atomic and are identical or are both elements and have The combined order (denoted by →) is defined to be the the same tag and the same number of children such that the transitive closure of the activation order and the arrival corresponding children are equal. orders of all Actors. So the following question arose in the early history of the Actor model: ―Is the combined order discrete?” Discreteness of the combined order captures an important intuition about computation because it rules out counterintuitive computations in which an infinite number of computational events occur between two events (à la Zeno). Hewitt conjectured that the discreteness of the activation 116 The axiom can be justified using results from General order together with the discreteness of all arrival orders Relativity implies that the combined order is discrete. Surprisingly 117 Quoted by Bob Boyer [personal communication 12 Jan. 2006]. 115 In general we have the following: Suppose that s is a 118 nonempty set Lisp was an important precursor of XML. The Atomics axiomatised below correspond roughly to atoms and the x: xis F(i) ⇔ xF(UnionChoiceF(s,x)) Elements to lists. where x: UnionChoiceF(s,x))s

March 21, 2010 Page 40 of 41

121 The following are axioms for XML: Theorem. XML+ is the , i.e.,

 ⇨ (EXML+  EXML+) (Atomics  Elements) = XML (Atomics  Elements) = { }  Atomics and Elements are disjoint Tags  Atomics

x: xElements ⇔ x= x1…xLength(x) where xi is the ith subelement of x and Tag(x) is the tag of x Length(x) is the number of subelements of x

A set pXML is defined to be inductive (written Inductive[p] ) if and only it contains the atomics and for all elements that it contains, it also contains every element with those sub-elements :

(pXML; x1…xnp; tTags:

Inductive[p] ⇨ (Atomics  p  x1…xnp) The Principle of Induction for XML is as follows: pXML: Inductive[p] ⇨ p = XML

XML Plus (XML+) is the domain of Direct Logic that is obtained by first extending the Atomics (described above) with Actors119 (see [Hewitt 2009c]) in order to create

XMLwithActors.. Then XML+ is defined recursively by the following axioms:

0 XML+ ≡ XMLwithActors i+1 i i; x: (xXML+ ⇔ xXML+) i XML+ ≡ i XML+

The universe of sets can be defined as follows:120

Sets ≡ XML+ - XMLwithActors

Subsets of elements of XML+ can be defined using the following Restricted Comprehension Axiom:

e: e{x | P[x] } ⇔ (P[e]  eXML+)

121 What about Cantor‘s set defined as follows:

Cantor ≡ {xXML+ | xXML+ } Clearly CantorXML+. This illustrates that Cantor is not all

of XML+, just the ones whose elements are in XML+. For 119 λ-expressions are a subset of Actors (see appendix below) example XML+Cantor even though XML+XML+ because

XML XML . It is impossible in Direct Logic to get ―outside‖ 120 + + Note that SetsSets XML+ and its subsets.

March 21, 2010 Page 41 of 41