Published in ArXiv http://arxiv.org/abs/0812.4852 http://commonsense.carlhewitt.info

Common sense for concurrency and strong paraconsistency using unstratified and reflection

Carl Hewitt http://carlhewitt.info

This paper is dedicated to John McCarthy.

Abstract Unstratified Reflection is the Norm...... 11 and Reification ...... 11 This paper develops a strongly paraconsistent (called Direct ™) that incorporates the of Diagonal ...... 12 Computer Science and allows unstratified inference and Logical Fixed Point ...... 12 reflection using mathematical induction for almost all of Disadvantages of stratified metatheories ...... 12 to be used. Direct Logic allows mutual Reification Reflection ...... 13 reflection among the mutually chock full of inconsistencies Incompleteness Theorem for Theories of Direct Logic ..... 14 code, documentation, and use cases of large software systems Inconsistency Theorem for Theories of Direct Logic ...... 15 thereby overcoming the limitations of the traditional Tarskian Consequences of Logically Necessary Inconsistency ...... 16 framework of stratified metatheories. Concurrency is the Norm ...... 16 Gödel first formalized and proved that it is not possible to Nondeterministic computation ...... 16 decide all mathematical questions by inference in his 1st Computation is not subsumed by logical deduction ...... 18 incompleteness theorem. However, the incompleteness Arrival order indeterminacy ...... 19 theorem (as generalized by Rosser) relies on the assumption of Computational Representation Theorem ...... 19 ! This paper proves a generalization of the Concurrency requires unbounded nondeterminism ...... 20 Gödel/Rosser incompleteness theorem: a strongly Unbounded nondeterminism in an Actor programming paraconsistent theory is self-provably incomplete. However, ...... 21 there is a further consequence: Although the semi-classical Scientific Community Metaphor ...... 22 mathematical fragment of Direct Logic is evidently consistent, The admission of logical powerlessness ...... 22 since the Gödelian paradoxical is self-provable, Work to be done ...... 23 every reflective strongly paraconsistent theory in Direct Logic Conclusion ...... 23 is self-provably inconsistent! Acknowledgements...... 25 This paper also proves that is not ...... 26 computationally universal in that there are concurrent programs Appendix. Additional Principles of Direct Logic ...... 33 for which there is no equivalent in Direct Logic. Consequently Logic ...... 33 the Logic Programming paradigm is strictly less general than Equality ...... 33 the Procedural Embedding of Knowledge paradigm. Thus the Nondeterministic λ-calculus ...... 33 paper defines a concurrent Theory ...... 34 ActorScript™ (that is suitable for expressing massive Noncompactness...... 34 concurrency in large software systems) meta-circularly in Direct Logic is based on XML ...... 34 terms of itself. Provably Inference Reflected in Theories of Direct Logic ...... 35

Contents Introduction ...... 2 Limitations of First Order Logic ...... 2 Inconsistency is the Norm in Large Software Systems ...... 3 Consistency has been the bedrock of mathematics ...... 4 Paraconsistency has been around for a while. So what‟s new? 4 Direct Logic ...... 5 Direct Logic is based on argument rather than ...... 6 of Direct Logic ...... 6 , Faithfulness, and Adequacy ...... 7 Self-refutation (Direct Indirect Inference) ...... 8 Booleans ...... 8 Two-way Deduction Theorem ...... 9 Boolean equivalences ...... 10 by ...... 10 Additional principles ...... 10 Direct Logic uses strong paraconsistency to facilitate theory development ...... 10

September 26, 2009 Page 1 of 36

Introduction indirect mutual pervades reasoning “But if the general of Logic are of such a about use cases, documentation, and code. that when presented to the mind they at 3. Concurrency is the norm. Logic Programs based once command assent, wherein consists the on the inference rules of are difficulty of constructing the Science of Logic?” not computationally universal because the [Boole 1853 pg 3] message order arrival indeterminate computations of concurrent programs in open systems cannot be Our lives are changing: soon we will always be online. deduced using mathematical logic. The that (If you have doubts, check out the kids and the VPs of computation is not reducible to logical inference major corporations.) Because of this change, common has important practical consequences. For sense must adapt to interacting effectively with large example, reasoning used in Semantic Integration software systems just as we have previously adapted cannot be implemented using logical inference to new technology. Logic should provide [Hewitt 2008a]. foundational principles for common sense reasoning about large software systems. John McCarthy is the principal founding Logicist of Large software systems are becoming increasingly Artificial Intelligence although he might decline the permeated with inconsistency, unstratified inference and title.1 Simply put the Logicist Programme is to express reflection, and concurrency. As these inconsistent knowledge in logical propositions and to derive reflective concurrent systems become a major part of information solely by classical logic . the environment in which we live, it becomes an issue Building on the work of many predecessors [Hewitt 2008d], the Logicists Bob Kowalski and Pat Hayes of common sense how to use them effectively. This extended the Logicist Programme by attempting to paper suggests some principles and practices. encompass programming by using classical mathematical logic as a programming language. This paper discusses three challenges to the Logicist Limitations of First Order Logic Programme: 1. Inconsistency is the norm and consequently “A foolish consistency is the hobgoblin of little minds.” classical logic infers too much, i.e., anything and ---Emerson [1841] everything. The experience (e.g. Microsoft, the First Order Logic is woefully lacking for reasoning about US government, IBM, etc.) is that inconsistencies large software systems. (e.g. among implementations, documentation, and For example, a limitation of classical logic for use cases) in large software systems are pervasive inconsistent theories is that it supports the principle that and despite enormous expense have not been from an inconsistency anything can be inferred, e.g. “The eliminated. moon is made of green cheese.” Standard mathematical logic has the problem For convenience, I have given the above principle the that from inconsistent information, any conclusion IGOR for Inconsistency in Garbage Out Redux.2 whatsoever can be drawn, e.g., “The moon is IGOR can be formalized as follows in which a made of green cheese.” However, our society is about a proposition Ω infers any increasingly dependent on these large-scale proposition:3 software systems and we need to be able to about them. In fact professionals in our society Ω, ¬ Ω ├  reason about these inconsistent systems all the The IGOR principle of classical logic may not seem very time. So evidently they are not bound by classical intuitive! So why is it included in classical logic? mathematical logic. 2. Unstratified inference and reflection are the The IGOR principle is readily derived from the following norm and consequently logic must be extended to principles of classical logic: use unstratified inference and reflection for strongly paraconsistent theories. However, the  Full indirect inference: (├ ,  ) ⇨ (├ ) traditional approach (using the Tarskian which can be justified in classical logic on the framework of hierarchically stratified grounds that if Ψ infers a contradiction in a consistent metatheories) is unsuitable for Software theory then Ψ must be . In an inconsistent Engineering because unstratified direct and 2 In Latin, the principle is called ex falso quodlibet which means that from falsity anything follows. 1 Logicist and are used in this paper for the general 3 Using the ├ to mean “infers in classical mathematical sense pertaining to logic rather than in the restricted technical sense of maintaining that mathematics is in some important sense logic” and ⇨ to mean classical mathematical logical implication. reducible to logic. Also ⇔ is used for , i.e., “if and only if”.

September 26, 2009 Page 2 of 36

theory, full indirect inference leads to explosion by 3. Discuss the implications of the above results for the following derivation in classical logic by a which common sense. a contradiction about P infers any proposition : P, ¬P ├ ¬ ├ P, ¬P ├ (¬ ¬) ├  Inconsistency is the Norm in Large Software  Disjunction introduction: (Ψ ├ (ΨΦ)) which in Systems classical logic would say that if Ψ is true then (ΨΦ)) is true regardless of whether Φ is true.4 In “find bugs faster than developers can fix them an inconsistent theory, disjunction introduction leads and each fix leads to another bug” to explosion via the following derivation in classical --Cusumano & Selby 1995, p. 40 logic in which a contraction about P infers any The development of large software systems and the proposition : extreme dependence of our society on these systems have P,¬ P ├ (P),¬ P ├  introduced new phenomena. These systems have pervasive inconsistencies among and within the following:

Other limitations of First Order Logic include:  Use cases that express how systems can be used  It lacks reflection so it can‟t deal with mutually and tested in practice reflective propositions, e.g., among  Documentation that expresses over-arching documentation, uses cases, and implementations justification for systems and their technologies of large software systems. Also it is stratified,  Code that expresses implementations of systems meaning that different theories cannot mutually refer to each other‟s inferences. In particular a Adapting a metaphor6 used by for science, the theory cannot directly reason about itself. bold structure of a large software system rises, as it were,  It doesn‟t handle the mathematical induction above a swamp. It is like a building erected on piles. The needed for inferring properties of programs. Nor piles are driven down from above into the swamp, but not does it handle reasoning about contention in down to any natural or given base; and when we cease our concurrency. attempts to drive our piles into a deeper layer, it is not because we have reached bedrock. We simply pause when The plan of this paper is as follows: we are satisfied that they are firm enough to carry the 1. Solve the above problems with First Order Logic structure, at least for the time being. Or perhaps we do by introducing a new system called Direct Logic5 something else more pressing. Under some piles there is for large software systems. no rock. Also some rock does not hold. 2. Demonstrate that no Logicist system is computationally universal (not even Direct Logic Different communities are responsible for constructing, even though it is evidently more powerful than evolving, justifying and maintaining documentation, use any logic system that has been previously cases, and code for large, human-interaction, software developed). I.e., there are concurrent programs systems. In specific cases any one consideration can trump for which there is no equivalent Logic Program. the others. Sometimes debates over inconsistencies among the parts can become quite heated, e.g., between vendors.

4 In the long run, after difficult negotiations, in large Disjunction introduction follows from the principle of software systems, use cases, documentation, and code all that Ψ is equivalent to Ψ(ΨΦ). Consequently change to produce systems with new inconsistencies. absorption must be limited to one direction. 5 Direct Logic is called “direct” due to considerations such as the However, no one knows what they are or where they are following: located!  Direct Logic does not incorporate general indirect in a theory T. Instead it only allows “direct” Furthermore there is no evident way to divide up the code, forms of indirect proof in the form of self-refutation, documentation, and use cases into meaningful, consistent e.g., (├ ) ├ (├ ). See discussion below. microtheories for human-computer interaction. T T T  In Direct Logic, paraconsistent theories speak directly Organizations such as Microsoft, the US government, about their own provability relation rather than having and IBM have tens of thousands of employees pouring to resort to indirect propositions in a meta-theory. over hundreds of millions of lines of documentation, code, and use cases attempting to cope. In the course of  Inference of Φ from Ψ in a theory T (Ψ├ Φ) is T “direct” in the sense that it does not automatically time almost all of this code will interoperate using Web incorporate the contrapositive i.e., it does not automatically incorporate (Φ ├ Ψ). See discussion T below. 6 Popper [1934] section 30.

September 26, 2009 Page 3 of 36

Services. A large software system is never done Euclid [circa 300BC] in Alexandria, theories were [Rosenberg 2007]. intuitively supposed to be both consistent and complete. Wilhelm Leibniz, , , The thinking in almost all scientific and engineering work Augustus De Morgan, , , has been that models (also called theories or microtheories) Charles Peirce, , etc. developed mathematical should be internally consistent, although they could be logic. However, a crisis occurred with the discovery of the 7 inconsistent with each other. logical based on self-reference by Cesare Burali-Forti [1897], Cantor [1899], [1903], etc. In response Russell [1908] stratified types, Consistency has been the bedrock of mathematics [Zermelo 1905, Fränkel 1922, Skolem 1922] stratified sets When we risk no contradiction, and [Tarski and Vaught 1957] stratified logical theories to It prompts the tongue to deal in fiction. limit self-reference. Kurt Gödel [1931] proved that Gay [1727] mathematical theories are incomplete, i.e., there are propositions which can neither be proved nor disproved. Platonic Ideals8 were to be perfect, unchanging, and eternal.9 Beginning with the Hellenistic mathematician Consequently, although and unrestricted self- reference were discarded for general mathematics, the bedrock of consistency remained. 7 Indeed some researchers have even gone so far as to construct consistency proofs for some small software systems, e.g., [Davis and Morgenstern 2005] in their system for deriving plausible Paraconsistency has been around for a while. So conclusions using classical logical inference for Multi-Agent Systems. In order to carry out the consistency proof of their what’s new? system, Davis and Morgenstern make some simplifying Within mathematics paraconsistent10 logic was developed assumptions: to deal with inconsistent theories. The idea of  No two agents can simultaneously make a choice (following [Reiter 2001] ). is to be able to make inferences from  No two agents can simultaneously send each other inconsistent information. character of our world. Among the most important of these  Each agent is individually serial, i.e., each agent can [ideals] (as they are now called, because they are not located in execute only one primitive action at a time. space or time) are Goodness, Beauty, Equality, Bigness, Likeness,  There is a global clock time. Unity, Being, Sameness, Difference, Change, and  Agents use classical Speech Acts (see [Hewitt 2006b Changelessness. (These terms — “Goodness”, “Beauty”, and so 2007a, 2007c, 2008c]). on — are often capitalized by those who write about , in  Knowledge is expressed in first-order logic. order to call attention to their exalted status;…) The most The above assumptions are not particularly good ones for fundamental distinction in Plato's philosophy is between the many modern systems (e.g., using Web Services and many-core observable objects that appear beautiful (good, just, unified, computer architectures). [Hewitt 2007a] equal, big) and the one object that is what Beauty (Goodness, The following conclusions can be drawn for documentation, Justice, Unity) really is, from which those many beautiful (good, use cases, and code of large software systems for human- just, unified, equal, big) things receive their and their computer interaction: corresponding characteristics. Nearly every major work of Plato  Consistency proofs are impossible for whole is, in some way, devoted to or dependent on this distinction. Many systems. of them explore the ethical and practical consequences of  There are some consistent subtheories but they are conceiving of reality in this bifurcated way. We are urged to typically mathematical. There are some other transform our values by taking to heart the greater reality of the consistent microtheories as well, but they are [ideals] and the defectiveness of the corporeal world.” [Kraut small, make simplistic assumptions, and typically 2004] are inconsistent with other such microtheories 9 Perfection has traditionally been sought in the realm of the [Addanki, Cremonini and Penberthy 1989]. spiritual. However, Ernest Kurtz and Katherine Ketcham [1993] Nevertheless, the Davis and Morgenstern research programme expounded on the thesis of the “spirituality of imperfection” to prove consistency of microtheories can be valuable for the building on the experience and insights of Hebrew prophets, theories to which it can be applied. Also some of the techniques Greek thinkers, Buddhist sages, Christian disciples and that they have developed may be able to be used to prove the Alcoholics Anonymous. This is spirituality for the “imperfect consistency of the mathematical fragment of Direct Logic and to because it is real and because imperfect has the possibility to be prove the paraconsistency of inconsistent theories in Direct Logic real.” As Leonard Cohen said “There is a crack in everything: (see below in this paper). that's how the light gets in.” The conception that they present is 8 “The world that appears to our senses is in some way defective very far from the Platonic Ideals of being perfect, unchanging, and filled with error, but there is a more real and perfect realm, and eternal. populated by entities [called “ideals” or “forms”] that are eternal, 10 Name coined by Francisco Miró Quesada in 1976 [Priest 2002, changeless, and in some sense paradigmatic for the structure and pg. 288].

September 26, 2009 Page 4 of 36

inconsistent information without being able to derive all because of their many seemingly arbitrary variants and propositions, called “simple paraconsistency” in their idiosyncratic inference rules and notation. For this paper in contrast to “strong paraconsistency” which is example (according to Priest [2006]), most simple discussed below. paraconsistent and relevance rule out Disjunctive 13 The most extreme form of simple paraconsistent ((ΦΨ), ¬Φ ├ Ψ). However, Disjunctive mathematics is [Priest and Routley 1989] Syllogism seems entirely natural for use in Software which maintains that there are true inconsistencies in Engineering! mathematics itself e.g., the Liar . However, mathematicians (starting with Euclid) have worked very hard to make their theories consistent and inconsistencies Direct Logic have not been an issue for most working mathematicians. The proof of the pudding is the eating. As a result: Cervantes [1605] in Don Quixote. Part 2. Chap. 24  Since inconsistency was not an issue, mathematical logic focused on the issue of truth and a model Direct Logic14 is an unstratified strongly paraconsistent theory of truth was developed [Dedekind 1888, reflective formalism for using inference for large software Löwenheim 1915, Skolem 1920, Gödel 1930, systems with the following goals: Tarski and Vaught 1957, Hodges 2006]. More  Provide a foundation for strongly paraconsistent recently there has been work on the development theories in Software Engineering. of an unstratified logic of truth [Leitgeb 2007,  Formalize a notion of “direct” inference for strongly Feferman 2007a].11 paraconsistent theories.  Simple Paraconsistent logic somewhat languished  Support all “natural” deductive inference [Fitch for lack of subject matter. The lack of subject 1952; Gentzen 1935] in strongly paraconsistent theories with the exception of general Proof by matter resulted in simple paraconsistent proof 15 theories that were for the most part so awkward as Contradiction and Disjunction Introduction.  Support all the usual Boolean equivalences among to be unused for mathematical practice. propositions with exception of absorption, which Consequently mainstream logicians and mathematicians must be restricted one way to avoid IGOR. have tended to shy away from simple paraconsistency.  Support mutual reflection among code, documentation, and use cases of large software One of the achievements of Direct Logic is the systems. development of an unstratified reflective strongly 12  Provide increased safety in reasoning about large paraconsistent inference system with mathematical software systems using strongly paraconsistent induction that does minimal damage to traditional theories. natural deductive logical reasoning. Direct Logic supports inference for a strongly Previous simple paraconsistent logics have not been 16 paraconsistent reflective theory T (├ ). Consequently, satisfactory for the purposes of Software Engineering T ├ does not support either general indirect inference (proof T by contradiction) or disjunction introduction. However, ├ 11 Of course, truth is out the window as a semantic foundation for T the inconsistent theories of large software systems! 12 The basic idea of Strong Paraconsistency is that no nontrivial 13 Indeed according to Routley [1979] “The abandonment of inferences should be possible from the mere fact of an is indeed the characteristic feature of the inconsistency. relevant logic solution to the implicational paradoxes.” By the principle of simple paraconsistency, in the empty 14 Direct Logic is distinct from the Direct Calculus theory (that has no beyond those of Direct Logic), [Ketonen and Weyhrauch 1984]. there is a proposition  such that 15 In this respect, Direct Logic differs from Quasi-Classical Logic [Besnard and Hunter 1995] for applications in information P,  P ⊬⊥  However, for the purposes of reasoning about large systems, which does include Disjunction Introduction. software systems, a stronger principle is needed. The 16 Direct Logic also supports ├ which is a generalization of principle of strong paraconsistency is stronger than simple classical mathematical logic and consequently supports general indirect inference () as well as disjunction paraconsistency in that it requires P,  P, Q ⊬⊥  Q introduction. because the inconsistency between P and  P is not relevant to Q. Although the semi-classical fragment of Direct Logic (├) is Of course, the following trivial inference is possible event presumably consistent, because the Gödelian paradoxical with strong paraconsistency: sentence is self-provable in every paraconsistent reflective theory

P,  P ├⊥ (Q ├⊥  P) and so forth T, ├ is necessarily inconsistent. See discussion below T

September 26, 2009 Page 5 of 36

does support all other rules of [Fitch 1952].17 Consequently, Direct Logic is well suited for 20 18 Each of the fundamental principles of practical reasoning about large software systems. Direct Logic below holds in every theory, The theories of Direct Logic are “open” in the sense of open- ended schematic axiomatic systems [Feferman 2007b]. The both the semi-classical theory (├21) and language of a theory can include any vocabulary in which its every strongly paraconsistent theory. axioms may be applied, i.e., it is not restricted to a specific The only exceptions are as follows: vocabulary fixed in advance (or at any other time). Indeed a 1. The following hold only for ├:22 theory can be an open system can receive new information at any time [Hewitt 1991, Cellucci 1992].  (├ ,  ) ⇨ (├ )   ├ () Direct Logic is based on argument rather than truth 23 Finally there are simple ideas of which no 2. Reification reflection does not hold can be given; there are also axioms or postulates, or in for ├. a word primary principles, which cannot be proved and have no need of proof. Gottfried Leibniz Syntax of Direct Logic Partly in reaction to Popper19, Lakatos [1967, §2]) calls the view below Euclidean (although there is, of course, no Direct Logic has the following syntax: claim concerning Euclid‟s own orientation):  If  and  are propositions then,  (negation),  (conjunction),  (disjunction), ⇨ “Classical epistemology has for two thousand years (implication), and ⇔ (bi-implication) are modeled its ideal of a theory, whether scientific or propositions. mathematical, on its conception of Euclidean  Atomic names are expressions.24 Also numbers are . The ideal theory is a deductive system with expressions.

an indubitable truth-injection at the top (a finite  If x1, …, and xn are variables and  is a proposition, conjunction of axioms)—so that truth, flowing down then the following is a proposition that says “for all x1, from the top through the safe truth-preserving …, and xn:  holds: channels of valid inferences, inundates the whole system.” x1; …; xn :   If F is an expression and E1, …, En are expressions, Since truth is out the window for inconsistent theories, we then F(E1, …, En) is an expression. have the following reformulation:  If X1, …, Xn are identifiers and E is an expression, then (λ(X1, …, Xn) E) is an expression. Inference in a theory T (├ ) carries argument T  If E1, E2, and E3 are expressions, then the following from antecedents to consequents in chains of are expressions: inference. if E1 then E2 else E3 E1 = = E2 (E1 and E2 are the same Actor)  If E1, …, En are expressions, then [E1, …, En] (the sequence of E1, …, and En) is an expression

20 The fundamental principles of Direct Logic are placed in boxes like this one and they are not independent. 21 It is important not to confuse the classical theory ├ with the 17 empty paraconsistent theory ├⊥. that has no axioms beyond those But with the modification that Ψ├ Φ does not automatically T of Direct Logic. The theory ├ is presumably consistent whereas mean that ├ (Ψ⇨Φ). See discussion below. T 18 the theory ├⊥ is inconsistent (as shown later in this paper). In this respect, Direct Logic differs from previous 22 paraconsistent logics, which had inference rules that made them Consequently, the classical deduction theorem holds: intractable for use with large software systems. (├ (ΨΦ)) ⇔ (Ψ├ Φ) 19 Indirect inference has played an important role in science 23 Defined and discussed later in this paper. (emphasized by Karl Popper [1962]) as formulated in his 24 For example., Fred and x are atomic names. An atomic name principle of refutation which in its most stark form is as follows: is either a constant, variable or identifier. Variables are If ├  Ob for some observation Ob, then it can be T universally quantified and identifiers are bound in λ- expressions. concluded that T is refuted (in a theory called Popper), As a convention in this paper, the first letter of a constant will be i.e., ├ Popper T capitalized.

September 26, 2009 Page 6 of 36

 If E1 and E2 are expressions, [E1 E2] (the sequence Note that Direct Logic does not have quantifiers, but of E1 followed by the elements of the sequence E2) is universally quantified variables are allowed at the top level an expression in statements.27  If X is a variable, E is an expression, and  is a proposition, then {XE | } (the set of all X in E such Soundness, Faithfulness, and Adequacy that ) is an expression. Soundness in Direct Logic is the principle that the rules of  If E1 and E2 are expressions, then E1=E2, E1E2 and Direct Logic preserve , i.e., E1E2 are propositions  If P is an expression and E , …, E are expressions, 1 n Soundness: (├ ) ├ ((├ ) ├ (├ )) then P[E1, …, En] is a proposition. T T T T T  If E and E are expressions, then E  E (E can  if an inference holds and furthermore if the 1 2 1 2 1 antecedent of the inference is a theorem, then the reduce to E2 in the nondeterministic λ-calculus) is a proposition. consequence of the inference is a theorem  If E is an expression, then E (E always converges in the nondeterministic λ-calculus) is a proposition. Adequacy is the property that if an inference holds, then the theory in which the inference holds is adequate to  If E is an expression, then E (E is irreducible in the prove the proposition that the inference hold, i.e., nondeterministic λ-calculus) is a proposition.  If E1 and E2 are expressions, then E1E2 (E1 can Adequacy: (├ ) ├ (├ ( ├ )) converge to E2 in the nondeterministic λ-calculus) is a T T T T proposition.  if an inference holds, then it is provable that it holds  If E is an expression, then 1E (E reduces to exactly 1 expression in the nondeterministic λ-calculus) is a proposition. Faithfulness is the property that if a theory proves the  If T is an expression and  is a proposition, then proposition that an inference holds, then the theory faithfully proves the inference, i.e., ├  ( is provable in ) is a proposition. T T  If is an expression and  , …,  are propositions Faithfulness: (├ (├ )) ├ (├ ) T 1 k T T T T and 1, …, n are propositions then  if the proposition that an inference holds is provable, then the inference holds.. 1, …, k ├ 1, …, n is a proposition that says 1, T … and, k infer 1, …, and n in T.  If T is an expression, E is an expression and  is a proposition, then E╟  (E is a proof of  in ) is a T T proposition.  If s is a sentence (in XML25). then  s  (the abstraction of s) is a proposition. If p is a phrase (in XML), then  p (the abstraction of p) is an expression.26  If  is a proposition, then  (the reification of ) is 27 Consider following S: a sentence (in XML). If E is an expression, then p,qHumans: Mortal[ACommonAncestor(p, q)]  E  (the reification of E) is a phrase (in XML). where the syntax has been extended in the obvious way to allow constraints on variables. In general, the theories of Direct Logic are inconsistent and An instantiation of S can be specified by supplying values for therefore propositions cannot be consistently labeled with variables. For example S[Socrates, Plato] is the proposition truth values. Consequently, Direct Logic differentiates expressions (that do have values) from propositions (that Socrates,PlatoHumans⇨ Mortal[ACommonAncestor(Socrates, Plato)] do not have values). Note that care must be taken in forming the negation of statements. Direct Logic directly incorporates Skolemization unlike Lambda Logic [Beeson 2004], classical first-order , etc. For example the negation of S is the proposition 25 Computer science has standardized on XML for the (textual) representation of tree structures. (PS,QSHumans ⇨ Mortal[ACommonAncestor(PS QS)]) 26 For example, λ(x)  x=0 is an expression. In this respect where PS and QS are Skolem constants. See the axiomatization of Direct Logic differs from Lambda Logic [Beeson 2004], which set theory in the first appendix for further examples of the use of does not have abstraction and reification. Skolem functions in Direct Logic (See Appendix 1)

September 26, 2009 Page 7 of 36

Direct Logic has the following housekeeping rules:28 Simple Self-refutation: Reiteration: ├  T (├ ) ├ (├ )  a proposition infers itself T T T Exchange: ,├ , T which states that a proposition can be disproved  the order of propositions are written does not matter by showing that the proposition infers its own Residuation: (,├ ) ┤├ (├ (├ )) T T T T negation.  hypotheses may be freely introduced and discharged Right Meta Self-refutation: Monotonicity: (├ ) ├ (,  ├ ) (├ (├ )) ├ (├ ) T T T T T T T  an inference remains if new information is added Dropping: (├ ,) ├ (├ ) which states that a proposition can be T T T  an inference remains if extra conclusions are dropped disproved by showing that the proposition Independent inference: ((├ ), (├ )) ┤├ (├ ,) infers a proof of its own negation. T T T T Left Meta Self-refutation:  inferences can be combined ((├ )├ ) ├ (├ ) Transitivity: ((├ ) ] (├ )) ├ (├ ) T T T T T T T T  inference is transitive which states that provability of a proposition Variable Elimination: (x: P[x]) ├ P[E] T can be disproved by showing that its provability  a universally quantified variable of a statement can be infers its own negation. instantiated with any expression E (taking care that none of Both Meta Self-refutation: the variables in E are captured). ((├ )├ (├ )) ├ (├ ) Variable Introduction: Let Z be a new constant T T T T T (├ P[Z] ) ├ (├ x: P[x]) T T T which states that provability of a proposition  proving a statement with a universally quantified can be disproved by showing that its provability variable is equivalent to proving the statement with a newly infers provability of its negation. introduced constant substituted for the variable

Self-refutation (Direct Indirect Proof) can sometimes do Self-refutation (Direct Indirect Inference) inferences that are traditionally done using Full Indirect Inference. For example the proof of the incompleteness of “Contrariwise,” continued Tweedledee, “if it was so, theories in this paper makes use of Self-refutation. it might be; and if it were so, it would be; but as it isn't, it ain't. That's logic.” Carroll [1871] Booleans Direct Logic supports direct versions of indirect inference The Booleans30 in Direct Logic are as close to classical for strongly paraconsistent theories as follows:29 logic as possible.

Negation We could not even think „being‟ without a : being must be thought as the negation of negation of being. Paul Tillich [2000]

The following is a fundamental principle of Direct Logic: Double Negation Elimination:   ┤├ 31  T

28 Nontriviality principles have also been proposed as extensions Other fundamental principles for negation are found in the to Direct Logic including the following: next sections.  Direct Nontriviality: () ├ (├ ) T T  the negation of a proposition infers that it cannot be Conjunction and Disjunction proved Direct Logic tries to be as close to classical logic as  Meta Nontriviality: (├ ) ├ (├ ) possible in making use of natural inference, e.g., “natural T T T  the provability of the negation of a proposition infers that the proposition cannot be proved. 29 Direct Logic does not support either the Principle of Full 30  (negation),  (conjunction),  (disjunction), and 

Indirect Inference (Ψ├ Φ, ¬Φ) ├ ¬Ψ or the Principle of (implication), T T 31 disjunction introduction Ψ ├ (ΨΦ).  ┤├  means  ├  and  ├  T T T T

September 26, 2009 Page 8 of 36

deduction”. Consequently, we have the following However, the classical deduction theorem does not hold in equivalences for juxtaposition (comma): general for paraconsistent theories of Direct Logic.32 Instead, Direct Logic has a Two-way Deduction Theorem Conjunction in terms of Juxtaposition (comma): that is explained below.

(, ├ ) ┤├ ()├  T T Lemma (├ ()) ├ ((├ )  (├ )) T T T T T (├ , ) ┤├ ├ () Proof: Suppose ├ () T T T T Therefore ├ () T Direct Logic defines disjunction () in terms of By Disjunctive Syllogism, it follows that ├  and conjunction and negation in a fairly natural way as follows: T ├ . T

Disjunction in terms of What about the of the above theorem? Conjunction and Negation: Lemma ((├ )  (├ )) ├ (├ ()) T T T T  ┤├ () Proof: Suppose ├  and ├  T T T By the principle of Simple Self-refutation, to prove Since Direct Logic aims to preserve standard Boolean ├ (), it is sufficient to prove the following: properties, we have the following principle: T ()├ () T Thus it is sufficient to prove ()├ () Conjunction infers Disjunction: T But ()├ () ├ () by the T T () ├ () T suppositions above and the principle that Conjunction Infers Disjunction. Implication Putting the above two together we have the Two- Lakatos characterizes his own view as quasi-empirical: Way Deduction Theorem for Implication: “Whether a deductive system is Euclidean or quasi- empirical is decided by the pattern of flow (├ ()) ┫├ ((├ )  (├ )) T T T T in the system. The system is Euclidean if the characteristic flow is the transmission of truth from Consequently: the set of axioms „downwards‟ to the rest of the In Direct Logic, implication carries argument system—logic here is an of proof; it is both ways between antecedents and consequents quasi-empirical if the characteristic flow is in chains of implication. retransmission of falsity from the false basic Thus, in Direct Logic, implication (), rather than statements „upwards‟ towards the „hypothesis‟—logic inference (├ ), supports Lakatos quasi-. here is an organon of criticism.” T

Direct Logic defines implication (⇨) in terms of The following corollaries follow: conjunction and negation in a fairly natural way as follows: * Two-Way Deduction Theorem for Disjunction: ├ ()) ┫├ ((├ ) ] (├ )) T T T T Implication in terms of * Transitivity of Implication: Conjunction and Negation: (), () ├ () T Proof: Follows immediately from the Two-Way ⇨ ┤├ (  ) T Deduction Theorem for Implication by chaining in both directions for . Two-way Deduction Theorem * Reflexivity of Implication: ├ () T In classical logic there is a strong connection between deduction and implication through the Classical Deduction Theorem:

(├(Ψ⇨Φ)) ┫├ Ψ├ Φ 32 For example, in the empty strongly paraconsistent theory⊥ (that has no axioms beyond those of Direct Logic),

Q├⊥ (P P) but ⊬⊥ (Q (P P)).

September 26, 2009 Page 9 of 36

Proof: Follows immediately from ├  and T ├  using the Two-Way Deduction T Absorption of :  () ├  Theorem. T Absorption of :   () ├  T Boolean equivalences Disjunctive Splitting by Cases: Theorem: The following usual Boolean equivalences hold: (), (├ ), (├ ) ├  T T T Double Negation:  ⇔  Idempotence of :  ⇔  Direct Logic uses strong paraconsistency to Commutativity of :  ⇔  facilitate theory development Strongly paraconsistent theories can be easier to develop Associativity of :   () ⇔ ()  than classical theories because perfect absence of Distributivity of  over : inconsistency is not required. In case of inconsistency,   () ⇔ ()  () there will be some propositions that can be both proved De Morgan for : () ⇔   and disproved, i.e., there will be arguments both for and against the propositions. Idempotence of :  ⇔  A classic case of inconsistency occurs in the novel Catch- Commutativity of :  ⇔  22 [Heller 1995] which states that a person “would be Associativity of :   () ⇔ ()   crazy to fly more missions and sane if he didn't, but if he Distributivity of  over : was sane he had to fly them. If he flew them he was crazy 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 De Morgan for : () ⇔  simplicity of this clause of Catch-22 and let out a Implication as Disjunction: (⇨) ⇔  respectful whistle. „That's some catch, that Catch-22,‟ he observed.” Contrapositive: (⇨) ⇔ ⇨ So in the spirit of Catch-22, consider the follow axiomization of the above:

Disjunction Introduction by Negation 1. p: AbleToFly[p], Fly[p] ├Catch-22 Sane[p] The principle of Disjunction by Negation 33 is that a  disjunction always holds for a proposition and its 2. p: Sane[p] ├Catch-22 Obligated[p, Fly]  axiom negation.34 It can be expressed as follows: 3. p: Sane[p],ObligatedToFly[p]├Catch-22 Fly[p] Theorem. Disjunction Introduction by Negation:  axiom 4. ├ AbleToFly[Yossarian]  axiom ├ () Catch-22 T 5. Fly[Yossarian] ├ Fly[Yossarian] Proof: Follows immediately from Reflexivity of Catch-22  from 1 through 4 Implication, the definition of implication, De Morgan, and Double Negation Elimination. 6. ├Catch-22 Fly[Yossarian]  from 5 using Simple Self-refutation

Additional principles 7. p: Fly[p] ├Catch-22 Crazy[p]  axiom

Since Direct Logic aims to support as much of classical 8. p: Crazy[p] ├Catch-22 ObligatedToFly[p]  axiom reasoning as possible, we have the following principles: 9. p: Sane[p], ObligatedToFly[p] ├Catch-22 Fly[p]  axiom

33 Often called “Excluded Middle” in classical logic. 10. ├Catch-22 Sane[Yossarian]  axiom 34 da Costa [1963] proposed the following operator: 11. ├Catch-22 Fly[Yossarian]  from 6 through 10 ○  () together with the following principle that characterizes Logic for Thus there is an inconsistency in the above theory Formal Inconsistency: Catch-22 in that: ○, , ├  T 6. ├Catch-22 Fly[Yossarian] However, in Direct Logic, ○ is equivalent to  and so the 11. ├Catch-22  Fly[Yossarian] above principle would result in IGOR (see above).

September 26, 2009 Page 10 of 36

Various objections can be made against the above 35 s,tSentences: s=t ⇨ ( s ⇔ t ) axiomization of the theory Catch-22. However, Catch-22 illustrates several important points: Abstraction can be used to formally self-express  Even a very simple microtheory can engender important properties of Direct Logic such as the following: inconsistency  Strong paraconsistency facilitates theory The principle Theorems have Proofs says development because a single inconsistency is that  is a theorem of a strongly not disastrous.  Direct Logic supports fine grained reasoning paraconsistent theory T if and only if  has a because inference does not necessarily carry argument  that proves it in T, i.e. ╟  argument in the contrapositive direction. For T s,tSentences: ├ s  Aproof (s) ╟ s example, the general principle “A person who T T T where Aproof is a choice that flies is crazy.” (i.e., Fly[p] ├Catch-22 Crazy[p] ) T does not support the interference of chooses a proof of s Fly[Yossarian] from Crazy[Yossarian]. E.g., it Furthermore, there is a linear recursive40 might be the case that Fly[Yossarian] even though ProofChecker such that: it infers Crazy[Yossarian] contradicting T Crazy[Yossarian]. (pProofs; sSentences:  Even though the theory Catch-22 is inconsistent, ProofChecker (p, s)=1 ⇔ p ╟ s ) T T it is not meaningless. Conversely, every proposition  has a reification41 (given by 42) that is a sentence in XML.43 Unstratified Reflection is the Norm The sections below address issues concerning the Reflection and self-reference are central to Software relationship between abstraction and reification. Engineering. Reflection in logic is treated in the sections The use cases, documentation, and code are becoming below whereas reflection in concurrent programming is increasingly mutually reflective in that they refer to and treated in an Hewitt [2009c]. make use of each other. E.g.,  The execution of code can be dynamically checked Abstraction and Reification against its documentation. Also Web Services can be dynamically searched for and invoked on the Direct Logic distinguishes between concrete sentences in basis of their documentation. XML and abstract propositions.36 Software Engineering requires that it must be easy to construct abstract  Use cases can be inferred by specialization of propositions from concrete sentences.37 Direct Logic documentation and from code by automatic test provides abstraction for this purpose as follows: generators and by model checking. Every sentence s in XML has an abstraction38  Code can be generated by inference from that is the proposition given by s.39 documentation and by generalization from use cases.

Abstraction and reification are needed for large 35 Both Crazy[Yossarian] and Sane[Yossarian] can be inferred software systems so that that documentation, use from the axiomatization, but this per se is not inconsistent. 36 cases, and code can mutually speak about what has This is reminiscent of the Platonic divide (but without the been said and its meaning. moralizing). Gödel thought that “Classes and may, however, also be conceived as real objects…existing independently of our and constructions.” [Gödel 1944 pg 456] 40 I.e., executes in a time proportional to the size of its input. 37 Analogous the requirement that it must be easy to construct 41 Reifications are in some ways analogous to Gödel numbers executable code from concrete programs (text). [Gödel 1931]. 38 42 For example, if s and t are sentences in XML, then Heuristic: Think of the “elevator bars” . . .  around  as  s t  ⇔ ( s    t  ) “lowering” the abstract proposition  “down” into the concrete Cf. Sieg and Field [2005] on abstraction. sentence  that is its reification in XML. 39 Heuristic: Think of the “elevator bars” . . .  around s as The reifications of a propositions can be quite complex because “raising” the concrete sentence s “up” into the abstract of various optimizations that are used in the implementations of proposition s. The elevator bar heuristics are due to Fanya S. propositions. Montalvo. 43 Note that, if s is a sentence, then in general   s    s.

September 26, 2009 Page 11 of 36

However, using abstraction and reification can result in Let f be a total function from Sentences to paradoxes as a result of the Diagonal Argument (explained Sentences46 below). ├ ( Fix(f) ⇔ f(Fix(f)) ) T Diagonal Argument where Fix(f) ≡ Θ(Θ)  which exists because f always converges The Diagonal Argument has been used to prove many 47 famous theorems beginning with the proof that the real where Θ ≡ λ(g) f(λ(x) (g(g))(x)) numbers are not countable [Cantor 1890, Zermelo 1908]. Proof Fix(f) = Θ(Θ) Proof. Suppose to the contrary that the function = λ(g) f(λ(x) (g(g))(x)) (Θ) f:ℕℝ enumerates the real numbers that are greater = f (λ(x) (Θ(Θ))(x)) than equal to 0 but less than 1 so that f(n)i is the ith = f (Θ(Θ)) binary digit in the binary expansion of f(n) which can  by functional abstraction on Θ(Θ) be diagrammed as an array with infinitely many rows = f(Fix(f)) 48 and columns of binary digits as follows: Fix(f) ⇔ f(Fix(f)) .f(1)1 f(1)2 f(1)3 … f(1)i …  by abstraction of equals .f(2)1 f(2)2 f(2)3 … f(2)i …

.f(3)1 f(3)2 f(3)3 … f(3)i … Disadvantages of stratified metatheories … To avoid inconsistencies in mathematics (e.g., Liar .f(i)1 f(i)2 f(i)3 … f(i)i … Paradox, Russell‟s Paradox, Curry‟s Paradox, etc.), some … restrictions are needed around self-reference. The question 49 Define Diagonal as follows: is how to do it [Feferman 1984a, Restall 2006]. Diagonal ≡ Diagonalize(f) The approach which is currently standard in 44 mathematics is the Tarskian framework of assuming that where Diagonalize(g) ≡ λ(i) g(i)i there is a hierarchy of metatheories in which the where g(i)i is the complement of g(i)i of each theory is formalized in its metatheory [Tarski and Diagonal can be diagrammed as follows: Vaught 1957]. .f(1) f(1) f(1) … f(1) … According to Feferman [1984a]: 1 2 3 i “…natural language abounds with directly or f(2) f(2) f(2) … f(2) … . 1 2 3 i indirectly self-referential yet apparently harmless .f(3)1 f(3)2 f(3)3 … f(3)i … expressions—all of which are excluded from the … Tarskian framework.” .f(i)1 f(i)2 f(i)3 … f(i)i … Large software systems likewise abound with directly or … indirectly self-referential propositions in reasoning about Therefore Diagonal is a real number not enumerated their use cases, documentation, and code that are excluded by f because it differs in the ith digit of every f(i). by the Tarskian framework. Consequently the assumption of hierarchical metatheories is not very suitable for The Diagonal Argument is used in conjunction with the Software Engineering. Logical Fixed Point theorem that is described in the next section. 45 Credited in Kurt Gödel, Collected Works vol. I, p. 363, ftn. 23. However, Carnap, Gödel and followers did not use the λ calculus Logical Fixed Point Theorem and consequently their formulation is more convoluted. 46 Note that f is an ordinary Lisp-like function except that The Logical Fixed Point Theorem enables propositions to Sentences (a of XML) are used instead of S-expressions. effectively speak of themselves . 47 Where did the definition of Θ come from? First note that In this paper, the fixed point theorem is used to λ(x) (g(g))(x) = g(g) and consequently demonstrate the existence of self-referential sentences that Θ = λ(g) f(g(g)) will be used to prove theorems about Direct Logic using So Θ takes itself as an argument and returns the result of applying the Diagonal Argument. f to the result of applying itself to itself! In this way a fixed point of f is constructed. 48 Theorem [a λ-calculus version of Carnap 1934 pg 91 after Note that equality (=) is not defined on abstract propositions Gödel 1931]45: (like Fix(f) ). Also note that logical equivalence () is not defined on concrete XML sentences (like Fix(f) ). 49 According to [Priest 2004], "the whole point of the dialetheic solution to the semantic paradoxes is to get rid of the distinction 44 The symbol “≡” is used for “is defined as”. between object language and meta-language".

September 26, 2009 Page 12 of 36

But paradoxes loom: the goes back at least as far as the Greek philosopher Eubulides of Miletus who The Criterion of Admissibility for Direct lived in the fourth century BC. It could be put as follows: Logic is53: LiarProposition is defined to be the proposition “The negation of LiarProposition holds.”  is Admissible for T if and only if From its definition, LiarProposition holds if and only if it () ├ (├ ) doesn‟t! T T

The argument can be formalized using the fixed point I.e., the Criterion of Admissibility is that a proposition is theorem and the diagonal argument in the following way: Admissible for a theory T if and only if its negation infers LiarProposition ≡ Fix(Diagonalize) 54 50 in T that its negation is provable in T. where Diagonalize ≡ λ(s)  s 

The Liar Paradox can be stated as follows: Theorem. If  and  are Admissible for T, then  is Admissible for . LiarProposition ⇔  LiarProposition T Proof. Suppose  and  are Admissible for T, i.e., 51 Argument for the Liar Paradox () ├ (├ ) and () ├ (├ ). The goal is T T T T LiarProposition ⇔ Fix(Diagonalize) to prove () ├ (├ ()), which is ⇔ Diagonalize(Fix(Diagonalize)) T T equivalent to (]) ├ (├ (])), which  by the fixed point theorem T T follows immediately from the hypothesis. ⇔ λ(s)  s  (Fix(Diagonalize)) Theorem. If  and  are Admissible for T, then ⇨ ⇔   Fix(Diagonalize)   is Admissible for T. ⇔   LiarProposition  Proof. (⇨)  (). Therefore the theorem ⇔  LiarProposition follows from the previous theorem by Double Negation  step above is not valid in Direct Logic Elimination.

In order not to be plagued by paradoxes such as the one above, Direct Logic adopts the approach of the restricting the kinds of proposition that can be used the last step in the 53Note that there is an asymmetry in the definition of above kinds of arguments as discussed in the next section. Admissibility with respect to negation. In general, it does not follow that  is admissible for T just because  is admissible Reification Reflection for T. The asymmetry in Admissibility is analogous to the Direct Logic makes use of the following principle: asymmetry in the Criterion of Refutability [Popper 1962]. For The Reification Reflection Principle for example the sentence “There are no black swans.” is readily 52 refuted by the observation of a black swan. However, the paraconsistent theories of Direct Logic is negation is not so readily refuted. that if  is Admissible for T then: Also note that admissibility is different from the following: ├ ( ⇨ ├ ) ├ (     ⇔ ) T T T which is equivalent to the following: ├ ((├ ) ⇨ ) T T Of course, the above criterion begs the questions of which The above statement illustrates a problem with the traditional propositions are Admissible in T! A proposed answer is of “Negation as Failure” that was first noted in provided by the following: connection with the development of Planner, namely, “The dumber the system, the more it can prove!” See the discussion on the limitations of Logic Programming. 54 Admissibility is a generalization of the property of being GoldbachLike (emphasized by [Franz[n 2005]) which is defined to be all sentences s of (ℕ) such that fExpressions s=nω f(n)  BoundedQuantification(f) where BoundedQuantification(f) means that all the quantifiers in f are bounded, i.e., all quantifiers are of one of the following two forms: 50 Note that Diagonalize always converges. 1. variableexpression… 51 As explained below, this argument is not valid in Direct Logic. 2. variable expression… 52 Note that Reification Reflection does not apply to the semi- where variable does not appear in expression classical theory├ . Theorem. If  is Goldbach-like, then  is Admissible for ℕ.

September 26, 2009 Page 13 of 36

The motivation for Admissibility builds on the Incompleteness Theorem for Theories of Direct of the of computation Logic which were first developed in [Clinger 1981]. Subsequently [Hewitt 2006] developed the Incompleteness of a theory T is defined to mean that there TimedDiagrams model with the Computational is some proposition such that it cannot be proved and Representation Theorem which states: neither can its negation, i.e., a theory T is incomplete if and only if there is a proposition  such that

The DenoteS of a closed system S represents (├ )  (├  ) all the possible behaviors of S as T T i The general heuristic for constructing such a sentence  is DenoteS = ⊔iω ProgressionS (⊥S) to construct a proposition that says the following:

where ProgressionS is an approximation function that takes a set of approximate behaviors to their next stage This proposition is not provable in T.

and ⊥S is the initial behavior of S. Such a proposition (called Unprovable ) can be In this context,  is Admissible for S means that  T constructed as follows using the fixed point theorem and implies that there is a counter example to  in DenoteS so diagonalization: that in the denotational theory S induced by the system S: Unprovable ≡ Fix(Diagonalize) () ├S (├S) T 1 where Diagonalize ≡ λ(s) ├ s  T Theorem. For every  which is Admissible for T, there is  Diagonalize(s) is a sentence that says that  s is not provable in T a proof  such that:

 ├ ProofChecker ( ,  )=1 T T

The argument of the Liar Paradox is not valid for theories in Direct Logic. The argument of the Liar Paradox is not valid in Direct Logic because presumably LiarProposition is not Admissible for (where is the empty strongly paraconsistent theory that has no axioms beyond those of Direct Logic) and consequently the Reification Reflection Principle of Direct Logic does not apply. Likewise other standard paradoxes do not hold in Direct Logic.55

∴ Curry    Curry ⇨   But presumably, in general Curry⇨ is not Admissible for 55 For example, Russell‟s Paradox , Curry‟s Paradox, and the

Kleene-Rosser Paradox are not valid for paraconsistent theories in Kleene-Rosser Paradox: Direct Logic because, in the empty theory (that has no axioms KleeneRosser ≡ Diagonalize(Diagonalize) beyond those of Direct Logic): where Diagonalize ≡ λ(f)  f(f)  Russell’s Paradox: ∴ KleeneRosser ⇔   KleeneRosser  Russell ≡ Fix(Diagonalize) But presumably KleeneRosser is not Admissible for where Diagonalize ≡ λ(s) ├  s 

∴ Russell ⇔  ├  Russell  Paradox of Provability Provable ≡ Fix(Diagonalize) But presumably ├  Russell is not Admissible for where Diagonalize ≡ λ(s) ├ s 

Curry’s Paradox: ∴ Provable ⇔  ├ Provable  Curry ≡ Fix(Diagonalize) where Diagonalize ≡ λ(s)  s⇨  But presumably├ Provable is not Admissible for

September 26, 2009 Page 14 of 36

The following lemma verifies that Unprovable has the T desired property: 2) To prove: ├ ├  Unprovable T T T Lemma: ├ (Unprovable ⇔ ├ Unprovable ) ├ (Unprovable ⇨ ├ Unprovable ) T T T T T T T T Proof:  contrapositive of lemma

First show that ├ Unprovable is Admissible  Unprovable ├ (├ Unprovable ) T T T T T T for T  deduction theorem Proof: We need to show the following: (├  Unprovable )├ (├ ├ Unprovable ) T T T T T T ((├ Unprovable ) ├ (├ (├ Unprovable ))  soundness T T T T T T which by double negation elimination is equivalent (├  Unprovable ) ├ (├ Unprovable )) T T T T T to showing  faithfulness

(├ Unprovable ) ├ (├ ├ Unprovable ) ├ ├  Unprovable T T T T T T T T T which follows immediately from adequacy.  using Both Meta Self-refutation

Unprovable ⇔ Fix(Diagonalize) T However, as shown in the next section, a ⇔ Diagonalize(Fix(Diagonalize)) consequence of self-provable incompleteness is

 logical fixed point theorem inconsistency. ⇔ λ(s) ├ s  (Fix(Diagonalize)) T  definition of Diagonalize Inconsistency Theorem for Theories of Direct Logic

⇔  ├ Fix(Diagonalize)   “Then logic would force you to do it.” T Carroll [1895] (emphasis added) ⇔  ├ Unprovable   T T ⇔ ├ Unprovable T T Theorem: Theories in Direct Logic are self-provably 56  by Admissibility of ├ Unprovable inconsistent. T T

Theorem: Theories in Direct Logic are self-provably Paradox ≡ ├ Unprovable T T T incomplete. It is sufficient to show that proves both Paradox and T T It is sufficient to prove the following: its negation, i.e., 1. ├ ├ Unprovable T T T 2. ├ ├ Unprovable 1. ├ Paradox T T T T T 2. ├ Paradox T T Proof of Theorem: Proof of theorem

1) To prove: ├ ├ Unprovable T T T 1). ├ Paradox is immediate from the T T ├ (Unprovable ⇨ ├ Unprovable )  incompleteness theorem. T T T T lemma

Unprovable ├ ├ Unprovable  deduction T T T T theorem

(├ Unprovable ) ├ (├ ├ Unprovable ) T T T T T T  soundness

├ ├ Unprovable T T T  using Simple Self-refutation

56 This theorem is closely related to dialetheism [Priest and Routley 1989] which made the claim that mathematics is inconsistent (e.g. because of the Liar Paradox). Although the semi-classical mathematical fragment of Direct Logic is evidently consistent, every reflective paraconsistent theory of Direct Logic is necessarily inconsistent because it self-proves the Gödelian paradoxical sentence, cf. [Routley 1979], [Priest and Tanaka 2004], etc.

September 26, 2009 Page 15 of 36

value to the proposition Paradox . If the proposition is assigned the value TRUE, 2) To prove ├ Paradox T T T then (by the rules for truth values) it must also be assigned (├ Unprovable ) ├ Unprovable  lemma T T T T FALSE and vice versa. It is not obvious what (if anything) (├ ├ Unprovable ) ├ (├ Unprovable ) T T T T T T is wrong or how to fix it.  soundness Of course this is contrary to the traditional view of Tarski. E.g., ├ Unprovable  transitivity of inference from T T  incompleteness theorem I believe everybody agrees that one of the which may compel us to reject an empirical theory is ├ ├ Unprovable  adequacy T T T the proof of its inconsistency. . . . It seems to me that ├ Paradox  definition of Paradox the real reason of our attitude is...: We know (if only T T T intuitively) that an inconsistent theory must contain Consequences of Logically Necessary Inconsistency false sentences. [Tarski 1944] On the other hand, Frege [1915] suggested that, in a All truth passes through three stages: logically perfect language, the word „true‟ would not First, it is ridiculed. appear! According to McGee [2006], he argued that “when Second, it is violently opposed. we say that it is true that seawater is salty, we don‟t add Third, it is accepted as being self-evident. anything to what we say when we say simply that seawater Arthur Schopenhauer (1788-1860) is salty, so the notion of truth, in spite of being the central notion of [classical] logic, is a singularly ineffectual But all is not lost because the following can be said notion. It is surprising that we would have occasion to use about this logically necessary inconsistency: such an impotent notion, nevermind that we would regard  Because T is strongly paraconsistent, that T is it as valuable and important.” inconsistent about Paradox (by itself) should not T affect other reasoning. Also the subject matter of Concurrency is the Norm Paradox is not of general interest in software T Concurrency has now become the norm. However engineering and should not affect reasoning about nondeterminism came first. current large software systems. So do software engineers need to care that T is inconsistent about Nondeterministic computation Paradox as opposed to all the other inconsistencies T Several models of nondeterministic computation were of T which they care about more?57 developed including the following:  The logically necessary inconsistency concerning The lambda calculus can be viewed as Paradox is a nice illustration of how the earliest message passing programming language (see T Hewitt, Bishop, and Steiger 1973; Abelson and Sussman inconsistencies often arise in large software 1985). For example the lambda expression below systems: “there can be good arguments (proofs) on implements a tree data structure when supplied with both sides for contradictory conclusions”. parameters for a leftSubTree and rightSubTree. When A big advantage of strongly paraconsistent logic is that such a tree is given a parameter message "getLeft", it it makes fewer mistakes than classical logic when dealing returns leftSubTree and likewise when given the message with inconsistent theories. Since software engineers have "getRight" it returns rightSubTree. to deal with theories chock full of inconsistencies, strong paraconsistency should be attractive. However, to make it λ(leftSubTree, rightSubTree) relevant we need to provide them with tools that are cost λ(message) effective. if (message == "getLeft") then leftSubTree At first, TRUTH may seem like a desirable property for else if (message == "getRight") propositions in theories for large software systems. then rightSubTree However, because a paraconsistent reflective theory T is However, the semantics of the lambda calculus were necessarily inconsistent about Paradox , it is impossible T expressed using variable in which the values of to consistently assign truth values to propositions of T. In parameters were substituted into the body of an invoked particular it is impossible to consistently assign a truth lambda expression. The substitution model is unsuitable for concurrency because it does not allow the capability of sharing of changing resources. Inspired by the lambda 57 Of course, there are other inconsistent propositions of the same calculus, the for the programming language ilk, cf., Rosser [1936].

September 26, 2009 Page 16 of 36

Lisp made use of a data structure called an environment so complex [Kay 1975]. Code in the language was viewed by that the values of parameters did not have to be substituted the interpreter as simply a stream of tokens.58 As Dan into the body of an invoked lambda expression. This Ingalls [1983] later described it:59 allowed for sharing of the effects of updating shared data The first (token) encountered (in a program) was looked structures but did not provide for concurrency. up in the dynamic context, to determine the receiver of the subsequent message. The name lookup began with Petri nets Prior to the development of the Actor model, the dictionary of the current activation. Failing Petri nets were widely used to model nondeterministic there, it moved to the sender of that activation and so on computation. However, they were widely acknowledged to up the sender chain. When a binding was finally found have an important limitation: they modeled control flow for the token, its value became the receiver of a new but not data flow. Consequently they were not readily message, and the interpreter activated the code for that composable thereby limiting their modularity. Hewitt object's class.60 pointed out another difficulty with Petri nets: simultaneous action, i.e., the atomic step of computation in Petri nets is a 58 Subsequent versions of the Smalltalk language largely transition in which tokens simultaneously disappear from followed the path of using the virtual methods of Simula in the the input places of a transition and appear in the output message passing structure of programs. However Smalltalk-72 places. The physical basis of using a primitive with this made primitives such as integers, floating point numbers, etc. into kind of simultaneity seemed questionable to him. Despite objects. The authors of Simula had considered making such these apparent difficulties, Petri nets continue to be a primitives into objects but refrained largely for efficiency popular approach to modeling nondeterminism, and are reasons. Java at first used the expedient of having both primitive still the subject of active research. and object versions of integers, floating point numbers, etc. The C# programming language (and later versions of Java, starting Simula pioneered using message passing for computation, with Java 1.5) adopted the more elegant solution of using boxing motivated by discrete event simulation applications. These and unboxing, a variant of which had been used earlier in some Lisp implementations. applications had become large and unmodular in previous 59 The Smalltalk system went on to become very influential, simulation . At each time step, a large central innovating in bitmap displays, personal computing, the class program would have to go through and update the state of browser interface, and many other ways. Meanwhile the Actor each simulation object that changed depending on the state efforts at MIT remained focused on developing the science and of which ever simulation objects that it interacted with on engineering of higher level concurrency that step. Kristen Nygaard and Ole-Johan Dahl developed See the 2nd appendix of this paper on how Actors treated meta- the idea (first described in an IFIP workshop in 1967) of circular evaluation differently than Smalltalk-72 and Briot [1988] having methods on each object that would update its own for ideas that were developed later on how to incorporate some kinds of Actor concurrency into later versions of Smalltalk. local state based on messages from other objects. In 60 addition they introduced a class structure for objects with According to the Smalltalk-72 Instruction Manual [Goldberg inheritance. Their innovations considerably improved the and Kay 1976]: modularity of programs. Simula used nondeterministic There is not one global message to which all message "fetches" coroutine control structure in its simulations. (use of the Smalltalk symbols eyeball,  ; colon, :, and open 표 colon, 표) refer; rather, messages form a hierarchy which we Smalltalk-72 Planner, Simula, Smalltalk-72 [Kay 1975; explain in the following way-- suppose I just received a Ingalls 1983] and computer networks had previously used message; I read part of it and decide I should send my friend a message passing. However, they were too complicated to message; I wait until my friend reads his message (the one I sent him, not the one I received); when he finishes reading his use as the foundation for a mathematical theory of message, I return to reading my message. I can choose to let my concurrency. Also they did not address fundamental issues friend read the rest of my message, but then I cannot get the of concurrency. message back to read it myself (note, however, that this can be Alan Kay was influenced by message passing in the done using the Smalltalk object apply which will be discussed pattern-directed invocation of Planner in developing later). I can also choose to include permission in my message to Smalltalk-71. Hewitt was intrigued by Smalltalk-71 but my friend to ask me to fetch some information from my message was put off by the complexity of communication that and to give that in information to him (accomplished by 표 included invocations with many fields including global, including : or 표 in the message to the friend). However, sender, receiver, reply-style, status, reply, operator anything my friend fetches, I can no longer have. In other words, selector, etc. 1) An object (let's call it the CALLER) can send a message In November 1972 Kay visited MIT and discussed some to another object (the RECEIVER) by simply mentioning of his ideas for Smalltalk-72 building on the Logo work of the RECEIVER's name followed by the message. Seymour Papert and the "little person" metaphor of 2) The action of message sending forms a stack of messages; computation used for teaching children to program. the last message sent is put on the top. 3) Each attempt to receive information typically means However, the message passing of Smalltalk-72 was quite looking at the message on the top of the stack.

September 26, 2009 Page 17 of 36

settle. Arbiters are used in computers to deal with the Thus the message passing model in Smalltalk-72 was circumstance that computer clocks operate asynchronously closely tied to a particular machine model and with input from outside, e.g. keyboard input, disk access, programming language syntax that did not lend itself to network input, etc. So it could take an unbounded time for concurrency. Also, although the system was bootstrapped a message sent to a computer to be received and in the on itself, the language constructs were not formally defined meantime the computer could traverse an unbounded as objects that respond to Eval messages (see discussion number of states.62 Thus computers have the property of below). unbounded nondeterminism. So there is an inconsistency Computation was conceived in terms of between the nondeterministic state model of computation nondeterministic computation (e.g. Turing machines, Post and the circuit model of arbiters.63 productions, the lambda calculus, Petri nets, Actors [Hewitt, Bishop, and Steiger 1973] was a new nondeterministic simulations, etc.) in which each model of computation based on message passing in which computational step changed the global state. However, it there is no global state and unbounded nondeterminism is was well known that nondeterministic state machines have modeled. Furthermore, unbounded nondeterminism is a bounded nondeterminism, i.e., if a machine is guaranteed fundamental property of the Actor Model because it to halt then it halts in a bounded number of states.61 provides a guarantee of service for shared resources. In However, there is no bound that can be placed on how previous models of computation with bounded long it takes a computational circuit called an arbiter to nondeterminism, it was possible for a request to a shared resource to never receive service because it was possible that a nondeterministic choice would always be made to 4) The RECEIVER uses the eyeball, , the colon, :, and the service another request instead. 표 open colon, 표, to receive information from the message at the top of the stack. Computation is not subsumed by logical deduction 5) When the RECEIVER completes his actions, the message at the top of the stack is removed and the ability to send The notion of computation has been evolving for a long and receive messages returns to the CALLER. The time. One of the earliest examples was Euclid‟s GCD RECEIVER may return a value to be used by the . Next came mechanical calculators of various CALLER. kinds. These notions were formalized in the Turing 6) This sequence of sending and receiving messages, viewed Machines, the lambda calculus, etc. paradigm that focused here as a process of stacking messages, means that each on the “state” of a computation that could be logically message on the stack has a CALLER (message sender) inferred from the “previous” state. and RECEIVER (message receiver). Each time the The invention of digital computers caused a decisive RECEIVER is finished, his message is removed from the paradigm shift when the notion of an interrupt was stack and the CALLER becomes the current RECEIVER. The now current RECEIVER can continue reading any invented so that input that arrived asynchronously from information remaining in his message. outside could be incorporated in an ongoing computation. 7) Initially, the RECEIVER is the first object in the message The break was decisive because asynchronous typed by the programmer, who is the CALLER. communication cannot be implemented by Turing machines etc. because the order of arrival of messages 8) If the RECEIVER's message contains a eyeball,  ; colon, cannot be logically inferred. Message passing has become 표 :, or open colon, 표 , he can obtain further information the foundation of many-core and client-cloud computing. from the CALLER's message. Any information Kowalski developed the thesis that “computation could successfully obtained by the RECEIVER is no longer be subsumed by deduction” [Kowalski 1988] which he available to the CALLER. states was first proposed by Hayes [1973] in the form 9) By calling on the object apply, the CALLER. can give the “Computation = controlled deduction.” [Kowalski 1979]. RECEIVER the right to see all of the CALLER's The Hayes-Kowalski thesis was valuable in that it remaining message. The CALLER can no longer get motivated further research to characterize exactly which information that is read by the RECEIVER; he can, computations could be performed by Logic Programming. however, read anything that remains after the RECEIVER Contrary to the quotations (above) by Kowalski and completes its actions. Hayes, computation in general cannot be subsumed by 10) There are two further special Smalltalk symbols useful in deduction and contrary to the quotation (above) attributed sending and receiving messages. One is the keyhole, , that lets the RECEIVER “peek” at the message. It is the to Hayes, computation in general is not controlled 표 same as the 표 except it does not remove the information from the message. The second symbol is the hash mark, #, 62 Thus the computer may not be in any defined stable state for an placed in the message in order to send a reference to the unbounded period of time [Hewitt 2006]. next token rather than the token itself. 63 Of course the same limitation applies to the Abstract State 61 Bounded nondeterminism may at first seem like a rather Machine (ASM) model [Blass, Gurevich, Rosenzweig, and esoteric property that is of no practical interest. However, this Rossman 2007a, 2007b; Glausch and Reisig 2006]. In the turns out not to be the case. See below. presence of arbiters, the global states in ASM are mythical.

September 26, 2009 Page 18 of 36

deduction. In fact, Logic Programming is not implemented in mathematical logic. The claim is that computationally universal as explained below. because of the indeterminacy of the physical basis of communication in the Actor model, no kind of inferential Arrival order indeterminacy mathematical logic can deduce the order or arrival of future messages and the resulting computational steps. Hewitt and Agha [1991] and other published work argued that mathematical models of concurrency did not determine particular concurrent computations as follows: Computational Representation Theorem The Actor Model64 makes use of arbitration for What does the mathematical theory of Actors have to determining which message is next in the arrival order of say about this? A closed system is defined to be one which an Actor that is sent multiple messages concurrently. For does not communicate with the outside. Actor model example Arbiters can be used in the implementation of the theory provides the means to characterize all the possible arrival order of messages sent to an Actor which are computations of a closed system in terms of the subject to indeterminacy in their arrival order. Since arrival Computational Representation Theorem [Clinger 1982; orders are in general indeterminate, they cannot be Hewitt 2006]: deduced from prior information by mathematical logic The denotation DenoteS of a closed system S represents alone. Therefore mathematical logic cannot implement all the possible behaviors of S as concurrent computation in open systems. i S S S In concrete terms for Actor systems, typically we cannot Denote = ⊔iω Progression (⊥ ) observe the details by which the arrival order of messages for an Actor is determined. Attempting to do so affects the where ProgressionS is an approximation function that results and can even push the indeterminacy elsewhere. takes a set of partial behaviors to their next stage and Instead of observing the internals of arbitration processes ⊥S is the initial behavior of S. of Actor computations, we await outcomes. Indeterminacy in arbiters produces indeterminacy in Actors. The reason In this way, the behavior of S can be mathematically that we await outcomes is that we have no alternative characterized in terms of all its possible behaviors because of indeterminacy. (including those involving unbounded nondeterminism). It is important to be clear about the basis for the published claim about the limitation of mathematical logic. Although DenoteS is not an implementation of S, it can be It was not that individual Actors could not in general be used to prove a generalization of the Church-Turing- Rosser-Kleene thesis [Kleene 1943]: Theorem: If the primitive Actors of a 64 Actors are the universal primitives of concurrent computation. Process calculi (e.g. [Milner 1993]) are closely related the closed Actor System S are effective, then the possible Actor model. There are many similarities between the two outputs of S are recursively enumerable. approaches, but also several differences (some philosophical, Proof: Follows immediately from the some technical): Representation Theorem.  There is only one Actor model (although it has numerous formal systems for design, analysis, verification, The upshot is that concurrent systems can be modeling, etc.); there are numerous process calculi, developed for reasoning about a variety of different kinds represented and characterized by logical deduction of concurrent systems at various levels of detail (including but cannot be implemented. Thus, the following calculi that incorporate time, stochastic transitions, or practical problem arose: constructs specific to application areas such as security analysis). How can practical programming languages be  The Actor model was inspired by the laws of and rigorously defined since the proposal by Scott and depends on them for its fundamental axioms, i.e. physical Strachey [1971] to define them in terms lambda laws (see Actor ); the process calculi were calculus failed because the lambda calculus cannot originally inspired by algebra [Milner 1993]. implement concurrency?  Processes in the process calculi are anonymous, and communicate by sending messages either through named channels (synchronous or asynchronous), or via ambients One solution is to develop a concurrent variant of the (which can also be used to model channel-like Lisp meta-circular definition [McCarthy, Abrahams, communications [Cardelli and Gordon 1998]). In contrast, Edwards, Hart, and Levin 1962] that was inspired by actors in the Actor model possess an identity, and Turing's Universal Machine [Turing 1936]. If exp is a Lisp communicate by sending messages to the mailing expression and env is an environment that assigns values addresses of other actors (this style of communication can to identifiers, then the procedure EVAL with arguments also be used to model channel-like communications). exp and env evaluates exp using env. In the concurrent The publications on the Actor model and on process calculi variant, Eval is a message that can be sent to exp to have a fair number of cross-references, acknowledgments, and cause exp to be evaluated. Using such messages, modular reciprocal citations.

September 26, 2009 Page 19 of 36

meta-circular definitions can be concisely expressed in the so is the tree itself. In the present case this means that Actor model for universal concurrent programming if every execution sequence of P terminates, then there languages [Hewitt 2009c]. are only finitely many execution sequences. So if an output set of P is infinite, it must contain a Concurrency requires unbounded nondeterminism nonterminating computation. In theoretical Computer Science, unbounded nondeterminism (sometimes called unbounded Indeterminacy in concurrent computation versus indeterminacy) is a property of concurrency by which the nondeterministic automata amount of delay in servicing a request can become Will Clinger [1981] provided the following analysis of the unbounded as a result of arbitration of contention for above proof by Plotkin: shared resources while still guaranteeing that the request This proof depends upon the that if every node will eventually be serviced. Unbounded nondeterminism x of a certain infinite branch can be reached by some became an important issue in the development of the computation c, then there exists a computation c that denotational semantics. goes through every node x on the branch. ... Clearly this premise follows not from logic but rather from the Alleged to be impossible to implement given to choice points. This premise fails for arrival nondeterminism [in the arrival of messages Edsger Dijkstra [1976] argued that it is impossible to in the Actor model] because of finite delay [in the implement systems with unbounded nondeterminism arrival of messages]. Though each node on an infinite although the Actor model [Hewitt, Bishop, and Steiger branch must lie on a branch with a limit, the infinite 1973] explicitly supported unbounded nondeterminism. branch need not itself have a limit. Thus the existence of an infinite branch does not necessarily imply a Arguments for incorporating unbounded nonterminating computation. nondeterminism Carl Hewitt [1985, 2006] argued against Dijkstra in support of the Actor model: Bounded nondeterminism in the original version of  There is no bound that can be placed on how long Communicating Sequential Processes (CSP) it takes a computational circuit called an arbiter to Consider the following program written in CSP [Hoare settle. Arbiters are used in computers to deal with 1978]: the circumstance that computer clocks operate [X :: Z!stop( ) asynchronously with input from outside, e.g., || keyboard input, disk access, network input, etc. So Y :: guard: boolean; guard := true; it could take an unbounded time for a message sent *[guard  Z!go( ); Z?guard] to a computer to be received and in the meantime || the computer could traverse an unbounded number Z :: n: integer; n:= 0; of states. continue: boolean; continue := true;  Electronic mail enables unbounded *[X?stop( ) continue := false; nondeterminism since mail can be stored on servers [] indefinitely before being delivered. Y?go( ) n := n+1; Y!continue  Communication links to servers on the Internet can ] be out of service indefinitely. ]

Nondeterministic automata According to Clinger [1981]: Nondeterministic Turing machines have only bounded this program illustrates global nondeterminism, since nondeterminism. Sequential programs containing guarded the nondeterminism arises from incomplete specification commands as the only sources of nondeterminism have of the timing of signals between the three processes X, Y, only bounded nondeterminism [Dijkstra 1976] because and Z. The repetitive guarded command in the definition choice nondeterminism is bounded. Gordon Plotkin [1976] of Z has two alternatives: either the stop message is gave a proof as follows: accepted from X, in which case continue is set to false, Now the set of initial segments of execution sequences or a go message is accepted from Y, in which case n is of a given nondeterministic program P, starting from a incremented and Y is sent the value of continue. If Z given state, will form a tree. The branching points will ever accepts the stop message from X, then X terminates. correspond to the choice points in the program. Since Accepting the stop causes continue to be set to false, so there are always only finitely many alternatives at each after Y sends its next go message, Y will receive false as choice point, the branching factor of the tree is always the value of its guard and will terminate. When both X finite. That is, the tree is finitary. Now König's lemma and Y have terminated, Z terminates because it no longer says that if every branch of a finitary tree is finite, then has live processes providing input.

September 26, 2009 Page 20 of 36

As the author of CSP points out, therefore, if the repetitive guarded command in the definition of Z were required to be fair, this program would have unbounded SimpleCounter  nondeterminism: it would be guaranteed to halt but serializer there would be no bound on the final value of n65. In 퐧 actual fact, the repetitive guarded commands of CSP are  n is the current count not required to be fair, and so the program may not halt 퐈퐧퐭퐞퐠퐞퐫 [Hoare 1978]. This fact may be confirmed by a tedious calculation using the semantics of CSP [Francez, Hoare, implements Counter68 Lehmann, and de Roever 1979] or simply by noting that  implements the Counter interface the semantics of CSP is based upon a conventional Again< > power domain and thus does not give rise to unbounded 푽풐풊풅 nondeterminism.66 when an Again message is received {future self Again< >, Since it includes the nondeterministic λ calculus, return also become (n=n+1)} reflection, and mathematical induction in addition to its other inference capabilities, Direct Logic is a very  send an Again message to powerful Logic Programming language.  this counter and in parallel return also  incrementing the count Unbounded nondeterminism in an Actor Stop< > programming language 퐈퐧퐭퐞퐠퐞퐫 when a Stop message is received Nevertheless, there are concurrent programs that are not equivalent to any Direct Logic program. For example in return n return the count the Actor model, the following concurrent program in ActorScriptTM [Hewitt 2009c] will return an integer of By the semantics of the Actor model of computation unbounded size is not equivalent to any Direct Logic [Clinger 1981> [Hewitt 2006], the result of evaluating the expression (for reasoning see below) expression UnboundedStart< > is an integer of unbounded size. Unbounded  behavior Bounded Nondeterminism of Direct Logic Start< > But there is no Direct Logic expression that is equivalent to 퐈퐧퐭퐞퐠퐞퐫 UnboundedStart< > for the following reason: 67 when a Start message is received An expression  will be said to always converge (written 퐜 let = new SimpleCounter(n=0); as ) if and only if every reduction path terminates. I.e., 퐂퐨퐮퐧퐭퐞퐫 there is no function f(Expressions) such that let c be a new SimpleCounter with count 0 f(0)=  and (n: f(n)  f(n+1) ) {cAgain< > return cStop< >} , where the symbol  is used for reduction in the  send an Again message to c and in parallel nondeterministic λ calculus (see the Appendix). For  return the value of example (λ(x) 0 | x(x)) (λ(x) 0 | x(x))69 because there  sending a Stop message to c is a nonterminating path.

68 The Counter interface can be defined as follows: Counter  65 Of course, n would not survive the termination of Z and so the subInterface ? value cannot actually be exhibited after termination! In the  Counter is a subinterface of the universal interface ? ActorScript program below, the unbounded count is sent to the Again< > 푽풐풊풅 customer of the Start< > message so that it appears externally.  an Again<> message returns Void 66 Subsequent versions of Communicating Sequential Processes Stop< > (CSP) ([Hoare 1985; Roscoe 2005]) explicitly provide unbounded 퐈퐧퐭퐞퐠퐞퐫 nondeterminism.  a Stop<> message returns an Integer 69 67 The symbol  begins a comment that extends to the end of the Note that there are two bodies (separated by “|”) in each of the line λ expressions which provides for nondeterminism.

September 26, 2009 Page 21 of 36

Theorem: Bounded Nondeterminism of Direct Logic. If [Kornfeld and Hewitt 1981]. Ether also addressed issues of an expression in Direct Logic always converges, then conflict and contradiction with multiple sources of knowledge and multiple viewpoints. there is a bound Bound on the number of values to which it can converge. I.e., Ether used viewpoints to relativise information in n ( n n≤Bound ) :  ⇨  publications. However a great deal of information is shared across viewpoints. So Ether made use of inheritance so that Consequently there is no Direct Logic program equivalent information in a viewpoint could be readily used in other to UnboundedStart< > because it has unbounded viewpoints. Sometimes this inheritance is not exact as nondeterminism whereas every Direct Logic program has when the laws of physics in Newtonian mechanics are bounded nondeterminism. derived from those of Special Relativity. In such cases, In this way we have proved that the Procedural Ether used translation instead of inheritance building on Embedding of Knowledge paradigm is strictly more work by Imre Lakatos [1976] who studied very general than the Logic Programming paradigm. sophisticated kinds of translations of mathematical theorems (e.g., the Euler formula for polyhedra). Later Scientific Community Metaphor Bruno Latour [1988] analyzed translation in scientific Building on the Actor model of concurrent computation, communities. Kornfeld and Hewitt [1981] developed fundamental Viewpoints were used to implement natural deduction principles for Logic Programming in the Scientific (Fitch [1952]) in Ether. In order to prove a goal of the form Community Metaphor [Hewitt 2006 2008b]: ├V (P ⇨ Q) for a viewpoint V, it is sufficient to create a  Monotonicity: Once something is published it ├ cannot be undone. Scientists publish their results so new viewpoint V' that inherits from V, assert V’ P, and they are available to all. Published work is collected then prove ├V’ Q. Hierarchical viewpoints of this kind and indexed in libraries. Scientists who change their were introduced into Planner-like languages in the context mind can publish later articles contradicting earlier mechanism of QA-4 [Rulifson, Derksen, and Waldinger ones. However, they are not allowed to go into the 1973]. libraries and “erase” old publications. Resolving issues among viewpoints requires negotiation  Concurrency: Scientists can work concurrently, as studied in the sociology and . overlapping in time and interacting with each other.  Commutativity: Publications can be read regardless of whether they initiate new research or become The admission of logical powerlessness relevant to ongoing research. Scientists who become Descartes [1644] put forward the thesis that reflection interested in a scientific question typically make an conveys power, specifically the power of existence, as in “I effort to find out if the answer has already been think, therefore I am.”70 Reflection conveys ability for published. In addition they attempt to keep abreast large software systems to reason about the possible of further developments as they continue their work. outcomes of their actions. However reflection comes with  Sponsorship: Sponsors provide resources for logical limitations including the following computation, i.e., processing, storage, and  Admissibility. It may not be safe to use reflection communications. Publication and subscription on propositions (about outcomes) that are not require sponsorship although sometimes costs can admissible. be offset by advertising.  Incompleteness. It may be impossible to logically  : Publications include heterogeneous, prove or disprove outcomes. overlapping and possibly conflicting information.  Undecidability. Outcomes may be recursively There is no central arbiter of truth in scientific undecidable. communities.  Strong Paraconsistency. There are typically good  : Great effort is expended to test and arguments for both sides of contradictory validate current information and replace it with conclusions. better information.  Necessary Inconsistency. An unstratified  Provenance: The provenance of information is reflective strongly paraconsistent theory of Direct carefully tracked and recorded. Logic is necessarily inconsistent. Initial experiments implementing the Scientific Community Metaphor revolved around the development of  Concurrency. Other concurrently operating a programming language named Ether that had procedural system components may block, interfere with, or plans to process goals and assertions concurrently and revert possible outcomes. dynamically created new plans during program execution 70 From the Latin, “Cogito ergo sum.”

September 26, 2009 Page 22 of 36

 Indeterminacy. Because of concurrency, the Direct Logic is in a similar position except that the outcomes may be physically indeterminate. task is to demonstrate strong paraconsistency  Entanglement. The very process of reflection instead of consistency. Also Direct Logic has about possible outcomes can affect the outcomes. overcome many of the problems of Church‟s  Partiality. There might not be sufficient Foundation of Logic. information or resources available to infer  Inconsistencies such as the one about ├ Paradox T T outcomes. are relatively benign in the sense that they lack  Nonuniversality. Logic Programs are not significant consequences to software engineering. computationally universal because they cannot Other propositions such as ├ 1=0 are more implement some concurrent programs. T malignant because it can be used to paraconsistently These limitations lead to an admission of logical infer that all integers are equal to 0. To address powerlessness: malignant propositions, deeper investigations of In general, a component of a large software system is provability using ╟ 75 must be undertaken. logically powerless over the outcome of its actions. T  Tooling for Direct Logic needs to be developed to This admission of powerlessness needs to become part of support large software systems. the common sense of large software systems.71

Conclusion Work to be done We are now approaching the half century mark of There is much work to be done to further develop Direct the Logicist Programme for Artificial Intelligence that Logic: was initiated by McCarthy. It has been a fascinating  The consistency of the semi-classical fragment of adventure full of twists and turns! Direct Logic needs to be proved relative to the Logicists are now challenged as to whether they agree consistency of classical mathematics.72 that  The of the Variable-free Fragment73 of Direct Logic needs to be settled. As remarked  Strong Paraconsistency is the norm. above, the Boolean Fragment is very close to R-  Unstratified inference and reflection are the Mingle (which is decidable). norm.  Strong Paraconsistency of reflective theories of  Logic Programming is not computationally Direct Logic needs to be formally defined and universal. proved. A number of Logicists feel threatened by the results in this Church remarked as follows concerning a paper. Foundation of Logic that he was developing:  Some would like to stick with just classical logic Our present project is to develop the consequences and not consider strong paraconsistency.76 of the foregoing set of postulates until a contradiction is obtained from them, or until the development has been carried so far consistently as strongly paraconsistent. Furthermore, reification reflection seems to make it empirically probable that no to be an insurmountable barrier to developing a set theoretic contradiction can be obtained from them. And in model for Direct Logic. this connection it is to be remembered that just such 75 ╟  means that  is a proof of  in T empirical , although admittedly 76 T In 1994, Alan Robinson noted that he has “always been a little inconclusive, is the only existing evidence of the quick to make adverse judgments about what I like to call „wacko freedom from contradiction of any system of logics‟ especially in Australia…I conduct my affairs as though I mathematical logic which has a claim to adequacy. believe … that there is only one logic. All the rest is variation in [Church 1933]74 what you‟re reasoning about, not in how you‟re reasoning … [Logic] is immutable.” (quoted in Mackenzie [2001] page 286) 71 Admission of powerlessness is the beginning of Step 1 in 12- On the other hand Richard Routley noted: step programs of recovery from addiction, first developed by … classical logic bears a large measure of responsibility for Alcoholics Anonymous, e.g., see Wilson [1952]. the growing separation between philosophy and logic which 72 E.g., using techniques like those in Feferman [2000]. there is today… If classical logic is a modern tool inadequate for its job, modern philosophers have shown a 73 including the non-Boolean ├ T classically stoic resignation in the face of this inadequacy. 74 The difference between the time that Church wrote the above They have behaved like people who, faced with a device, and today is that the standards for adequacy have gone up designed to lift stream water, but which is so badly designed dramatically. Direct Logic must be adequate to the needs of that it spills most of its freight, do not set themselves to the reasoning about large software systems. Reification reflection is design of a better model, but rather devote much of their one of the biggest challenges to proving that Direct Logic is energy to constructing ingenious arguments to convince

September 26, 2009 Page 23 of 36

 Some would like to stick with the Tarskian theorem: a theory in Direct Logic is incomplete. However, stratified theories and not consider unstratified there is a further consequence. Although the semi-classical inference and reflection. mathematical fragment of Direct Logic is evidently consistent, since the Gödelian paradoxical proposition is  Some would like to stick with just Logic self-provable, every theory in Direct Logic is Programming (e.g. nondeterministic Turing inconsistent!77 The mathematical exploration of Machines, λ calculus, etc.) and not consider diagonalization and reflection has been through Eubulides concurrency. [4th century BC], Cantor [1890], Zermelo [1908], Russell And some would like to have nothing to do with any of the [1908], Gödel [1931], Rosser [1936], Turing [1936], Curry above! However, the results in this paper (and the driving [1942], Löb [1955], etc. leading ultimately to logically necessary inconsistency. technological and economic forces behind them) tend to The concept of TRUTH has already been hard hit by the push towards strong paraconsistency, unstratified inference pervasive inconsistencies of large software systems. and reflection, and concurrency. The requirements of large software systems are pushing towards strong Accepting the necessary logical inconsistency of reflective paraconsistency and unstratified inference and reflection strongly paraconsistent theories would be another nail in its while Web Services and many-core architectures are coffin. (ca. 1939) said “No one has pushing towards concurrency. [Hewitt 2008a] ever yet got into trouble from a contradiction in logic.” to Software engineers for large software systems often have which Alan Turing responded “The real harm will not good arguments (proofs) for some proposition P and also good arguments (proofs) for the negation of P, which is 77 Why did Gödel and the logicians who followed him not go in troubling. So what do large software manufacturers do? If this direction? Feferman [2006b] remarked on “the shadow of the problem is serious, they bring it before a committee of Hilbert that loomed over Gödel from the beginning to the end of stakeholders to try and sort it out. In many particularly his career.” Also Feferman [2006a] conjectured that “Gödel difficult cases the resulting decision has been to simply simply found it galling all through his life that he never received live with the problem for a while. Consequently, large the recognition from Hilbert that he deserved.” Furthermore, software systems are shipped to customers with thousands Feferman maintained that “the challenge remained well into his of known inconsistencies of varying severity. The last decade for Gödel to demonstrate decisively, if possible, why challenge is to try to keep the situation from getting worse it is necessary to go beyond Hilbert‟s in order to as systems continue to increase in complexity. prosecute the constructive consistency program.” Indeed Gödel A big advantage of strongly paraconsistent logic is that saw his task as being “to find a consistency proof for arithmetic it makes fewer mistakes than classical logic when dealing based on constructively evident though abstract principles” with inconsistent theories. Since software engineers have [Dowson 1997 pg. 263]. to deal with theories chock full of inconsistencies, strong Also Gödel was a committed Platonist, which has an paraconsistency should be attractive. However, to make it interesting bearing on the issue of the status of reflection. Gödel relevant we need to provide them with tools that are cost invented arithmetization to encode abstract mathematical effective. propositions as integers. Direct Logic provides a similar way to This paper develops a very powerful formalism (called easily formalize and paraconsistently prove Gödel‟s argument. Direct Logic) that incorporates the mathematics of But it is not clear that Direct Logic is fully compatible with Computer Science and allows unstratified inference and Gödel‟s reflection for almost all of classical logic to be used in With an argument just a step away from inconsistency, Gödel strongly paraconsistent theories in a way that is suitable (with his abundance of caution [Feferman 1984b, Dawson 1997]) for Software Engineering. Direct Logic allows unstratified could not conceive going in that direction. In fact, you could direct and indirect mutual reference among use cases, argue that he set up his whole hierarchical framework of documentation, and code thereby overcoming the metatheories and object theories to avoid inconsistency. A limitations of the traditional assumption of hierarchical Platonist of his kind could argue that Direct Logic is a mistaken metatheories . formalism because, in Direct Logic, all strongly paraconsistent Gödel first formalized and proved that it is not possible reflective theories are inconsistent. In this view, the inconsistency to decide all mathematical questions by inference in his 1st simply proves the necessity of the hierarchy of metatheories and incompleteness theorem. However, the incompleteness object theories. However, reasoning about large software systems theorem (as generalized by Rosser) relies on the is made more difficult by attempting to develop such a hierarchy assumption of consistency! This paper proves a for the chock full of inconsistencies theories that use reflection generalization of the Gödel/Rosser incompleteness for code, use cases, and documentation. In this context, it is not especially bothersome that theories of Direct Logic are themselves that the device is admirable, that they do not inconsistent about ├ Paradox . T T need or want the device to deliver more water; that there is On the other hand, Wittgenstein was more prepared to consider nothing wrong with wasting water and that it may even be the possibility of this inconsistency [Wittgenstein 1978]. desirable; and that in order to “improve” the device they According to Priest [2004], in 1930 Wittgenstein remarked: would have to change some features of the design, a thing Indeed, even at this stage, I predict a time when there will be which goes totally against their engineering intuitions and mathematical investigations of calculi containing which they could not possibly consider doing. [Routley , and people will actually be proud of having 2003] emancipated themselves from consistency.

September 26, 2009 Page 24 of 36

come in unless there is an application, in which case a at seminars at Stanford, SRI, and UT Austin to an earlier bridge may fall down.”[Holt 2006] It seems that we may version of the material in this paper. For the AAAI Spring now have arrived at the remarkable circumstance that we Symposium‟06, Ed Feigenbaum, Mehmet Göker, David can‟t keep our systems from crashing without allowing Lavery, Doug Lenat, Dan Shapiro, and others provided contradictions into our logic! valuable feedback. At MIT Henry Lieberman, Ted Selker, This paper also proves that Logic Programming is not Gerry Sussman and the members of Common Sense computationally universal in that there are concurrent Research Group made valuable comments. Reviewers for programs for which there is no equivalent in Direct Logic. AAMAS ‟06 and „07, KR‟06, COIN@AAMAS‟06 and Thus the Logic Programming paradigm is strictly less IJCAR‟06 made suggestions for improvement. general than the Procedural Embedding of Knowledge In the logic community, Mike Dunn, Sol Feferman, paradigm. Mike Genesereth, Tim Hinrichs, Mike Kassoff, John Of course the results of this paper do not diminish the McCarthy, Chris Mortensen, Graham Priest, , importance of logic.78 There is much work to be done!79 Richard Weyhrauch and Ed Zalta provided valuable Our everyday life is becoming increasingly dependent on feedback large software systems. And these systems are becoming Dana Scott made helpful suggestions on reflection and increasingly permeated with inconsistency, reflection and incompleteness. Richard Waldinger provided extensive concurrency. As these strongly paraconsistent reflective suggestions that resulted in better focusing a previous concurrent systems become a major part of the environment version of this paper and increasing its readability. Sol in which we live, it becomes an issue of common sense how Feferman reminded me of the connection between to use them effectively. We will need sophisticated Admissibility and 1. Discussion with Pat Hayes and Bob software systems to help people understand and apply the Kowalski provided insight into the early history of Prolog. principles and practices suggested in this paper. Creating Communications from John McCarthy and Marvin Minsky this software is not a trivial undertaking! suggested making common sense a focus. Mike Dunn collaborated on looking at the relationship of the Boolean Acknowledgements Fragment of Direct Logic to R-Mingle. Greg Restall pointed out that Direct Logic does not satisfy some Sol Feferman, Mike Genesereth, David Israel, Bill Jarrold, Relevantist principles. Gerry Allwein and Jeremy Forth Ben Kuipers, Pat Langley, Vladimir Lifschitz, Frank made detailed comments and suggestions for improvement. McCabe, John McCarthy, Fanya S. Montalvo, Peter Bob Kowalski and Erik Sandewall provided helpful Neumann, Ray Perrault, Natarajan Shankar, Mark Stickel, pointers and discussion of the relationship with their work. Richard Waldinger, and others provided valuable feedback Discussions with Ian Mason and Tim Hinrichs helped me develop Löb‟s theorem for Direct Logic. Scott Fahlman suggested introducing the roadmap in the introduction of 78 In a similar way, the incompleteness theorems did not diminish the paper. At CMU, Wilfried Sieg introduced me to his the importance of logic although they also caused concern among very interesting work with Clinton Field on automating the some Logicists. For example (David Hilbert‟s search for proofs of the Gödel incompleteness theorems. assistant) wrote “I was doubtful already sometime before [1931] about the completeness of the [for number theory], Also at CMU, I had productive discussions with Jeremy and I uttered [my doubts] to Hilbert, who was much angry … Avigad, Randy Bryant, John Reynolds, Katia Sycara, and Likewise he was angry at Gödel‟s results.” (quoted in Dawson Jeannette Wing. At my MIT seminar and afterwards, [1998]) Marvin Minsky, Ted Selker, Gerry Sussman, and Pete In fact, Hilbert never became reconciled with incompleteness Szolovits made helpful comments. Les Gasser, Mike as evidenced by the last two paragraphs of Hilbert's preface to Huhns, Victor Lesser, Pablo Noriega, Sascha Ossowski, [Hilbert and Bernays 1934] (translation by Wilfried Sieg): Jaime Sichman, Munindar Singh, etc. provided valuable “This situation of the results that have been achieved thus suggestions at AAMAS‟07. I had a very pleasant dinner far in at the same time points the direction for with Harvey Friedman at Chez Panisse after his 2nd Tarski the further research with the end goal to establish as consistent all our usual methods of mathematics. lecture. With respect to this goal, I would like to emphasize the Jeremy Forth, Tim Hinrichs, Fanya S. Montalvo, and following: the view, which temporarily arose and which Richard Waldinger provided helpful comments and maintained that certain recent results of Gödel show that my suggestions on the logically necessary inconsistencies in proof theory can't be carried out, has been shown to be theories of Direct Logic. Rineke Verbrugge provided erroneous. In fact that result shows only that one must valuable comments and suggestions at MALLOW‟07. exploit the finitary standpoint in a sharper way for the Mike Genesereth and Gordon Plotkin kindly hosted my farther reaching consistency proofs.” 79 lectures at Stanford and Edinburgh, respectively, on “The In the film Dangerous Knowledge [Malone 2006], explores the Logical Necessity of Inconsistency”. Inclusion of Cantor‟s history of previous crises in the foundations for the logic of diagonal argument as motivation as well as significant knowledge focusing on the ultimately tragic personal outcomes for Cantor, Boltzmann, Gödel, and Turing. improvements in the presentation of the incompleteness

September 26, 2009 Page 25 of 36

and inconsistency theorems were suggested by Jeremy Bob Balzer. “Tolerating Inconsistency” 13th International Forth. John McCarthy pointed to the distinction between Conference on Software Engineering. 1991. Logic Programming and the Logicist Programme for Bruce Baumgart. “Micro-Planner Alternate Reference Artificial Intelligence. Reviewers at JAIR made useful Manual” Stanford AI Lab Operating Note No. 67, April suggestions. Mark S. Miller made important suggestions 1972. for improving the meta-circular definition of ActorScript. JC Beall and Greg Restall. Logical Pluralism Oxford Comments by Michael Beeson helped make the University Press. 2006. presentation of Direct Logic more rigorous. Conversations Michael Beeson. “Lambda Logic” Lecture Notes in with Jim Larson helped clarify the relationship between Artificial Intelligence 3097. Springer. 2004. classical logic and the logic of paraconsistent theories. An Leopoldo Bertossi, et al., eds. Inconsistency Tolerance Springer. 2004. anonymous referee of the Journal of Logic and Philippe Besnard and Anthony Hunter. “Quasi-classical Computation made a useful comment. John-Jules Meyer Logic: Non-trivializable classical reasoning from and Albert Visser provided helpful advice and suggestions. inconsistent information” Symbolic and Quantitative Approaches to Reasoning and Uncertainty 1995. Philippe Besnard and Torsten Schaub. “Significant References Inferences: Preliminary Report. Hal Abelson and Gerry Sussman Structure and http://www.cs.uni-potsdam.de/wv/pdfformat/bessch00a.pdf Interpretation of Computer Programs 1984. Jean-Yves Bėziau, Walter Carnielli, and Dov Gabbay. Ed. Luca Aceto and Andrew D. Gordon (editors). Algebraic Handbook of Paraconsistency. College Publications Process Calculi: The First Twenty Five Years and Kings College London. 2007 Beyond Bertinoro, Italy, August, 2005. Fisher Black. A deductive question answering system, Sanjaya Addanki, Roberto Cremonini, and J. Scott Harvard University Thesis. 1964. Penberthy. “Reasoning about assumptions in graphs of Simon Blackburn and Keith Simmons (1999) Truth Oxford models” Readings in Qualitative Reasoning about University Press. Physical Systems. Kaufman. 1989. H. Blair and V. S. Subrahmanian. “Paraconsistent Logic Gul Agha. Actors: A Model of Concurrent Computation in Programming”. Theoretical Computer Science, 68(2) Distributed Systems Doctoral Dissertation. 1986. 1989. Gul Agha, Ian Mason, Scott Smith, and Carolyn Talcott. Patricia Blanchette “The Frege-Hilbert Controversy” The “A foundation for Actor computation.” Journal of Stanford Encyclopedia of Philosophy December 7, 2007. Functional Programming. 1997. Andreas Blass, Yuri Gurevich, Dean Rosenzweig, and Bruce Anderson. “Documentation for LIB PICO- Benjamin Rossman (2007a) Interactive small-step PLANNER” School of Artificial Intelligence, Edinburgh I: Axiomatization Logical Methods in University. 1972. Computer Science. 2007. Alan Anderson and , Jr. (1975) Entailment: Andreas Blass, Yuri Gurevich, Dean Rosenzweig, and The Logic of Relevance and Necessity Princeton Benjamin Rossman (2007b) Interactive small-step University Press. algorithms II: Abstract state machines and the Robert Anderson and Woody Bledsoe (1970) “A Linear characterization theorem. Logical Methods in Computer Format for with Merging and a New Science. 2007. Technique for Establishing Completeness” JACM 17. George Boole. An Investigation of Aldo Antonelli (2006). “Non-monotonic Logic” Stanford 1853. http://www.gutenberg.org/etext/15114 Encyclopedia of Philosophy. March 2006. Geof Bowker, Susan L. Star, W. Turner, and Les Gasser, A. I. Arruda. “Aspects of the historical development of (Eds.) Social Science Research, Technical Systems and paraconsistent logic” In Paraconsistent Logic: Essays on Cooperative Work Lawrence Earlbaum. 1997. the Inconsistent Philosophia Verlag. 1989 Robert Boyer (1971) Locking: A Restriction of Resolution William Athas and Nanette Boden “Cantor: An Actor Ph. D. University of Texas at Austin. Programming System for Scientific Computing” Fisher Black. A Deductive Question Answering System Proceedings of the NSF Workshop on Object-Based Harvard University. Thesis. 1964. Concurrent Programming. 1988. Special Issue of Daniel Bobrow and Bertram Raphael. “New programming languages for Artificial Intelligence research” ACM SIGPLAN Notices. Computing Surveys. 1974. Henry Baker. Actor Systems for Real-Time Computation Jean-Pierre Briot. From objects to actors: Study of a MIT EECS Doctoral Dissertation. January 1978. limited symbiosis in Smalltalk-80 Rapport de Recherche Henry Baker and Carl Hewitt: Laws for Communicating 88-58, RXF-LITP, Paris, France, September 1988. Parallel Processes IFIP. August 1977. Maurice Bruynooghe, Luís Moniz Pereira, Jörg Siekmann, Henry Baker and Carl Hewitt “The Incremental Garbage Maarten van Emden. “A Portrait of a Scientist as a Collection of Processes.” Symposium on Artificial Computational Logician” Computational Logic: Logic Intelligence Programming Languages. SIGPLAN Notices. August 1977. “

September 26, 2009 Page 26 of 36

Programming and Beyond: Essays in Honour of Robert Ernest Davis. “The Naïve Physics Perplex” AI Magazine, A. Kowalski, Part I Springer. 2004. Winter 1998. Andrea Cantini “Paradoxes and Contemporary Logic” The Ernest Davis and Leora Morgenstern. “A First-Order Stanford Encyclopedia of Philosophy October 16, 2007. Theory of Communication and Multi-Agent Plans” George Cantor .“Diagonal Argument” German Journal of Logic and Computation, Vol. 15, No. 5, 2005. Mathematical Union (Deutsche Mathematiker- John Dawson (1997) Logical Dilemmas. The Life and Vereinigung) (Bd. I, S. 75-78 ) 1890-1. Work of Kurt Gödel AK Peters. Rudolph Carnap. Logische Syntax der Sprache. (The John Dawson. “What Hath Gödel Wrought?” Synthese. Logical Syntax of Language Open Court Publishing Jan. 1998. 2003) 1934. Walter Dean and Hdenori Kurokawa. “Knowledge, proof, Lewis Carroll “What the Tortoise Said to Achilles” Mind and the Knower” TARK‟09, 4. No. 14. 1895. Richard Dedekind (1888) “What are and what should the Lewis Carroll Through the Looking-Glass Macmillan. numbers be?” (Translation in From Kant to Hilbert: A 1871 Source Book in the Foundations of Mathematics. Carlo Cellucci “Gödel's Incompleteness Theorem and the Oxford University Press. 1996) Braunschweig. Philosophy of Open Systems” Kurt Gödel: Actes du Reny Descartes (1644) Principles of Philosophy (English Colloque, Neuchâtel 13-14 juin 1991, Travaux de translation in The Philosophical Writings of Descartes logique N. 7, Centre de Recherches Sémiologiques, Cambridge University Press 1985). University de Neuchâtel. Edsger Dijkstra. A Discipline of Programming. Prentice http://w3.uniroma1.it/cellucci/documents/Goedel.pdf Hall. 1976. Carlo Cellucci “The Growth of Mathematical Knowledge: Mike Dunn and Greg Restall. “” in The An Open World View” The growth of mathematical Handbook of , second edition. Dov knowledge Kluwer. 2000. Gabbay and Franz Guenther (editors), Kluwer. 2002. Alonzo Church “A Set of postulates for the foundation of Ralph Waldo Emerson. “Self Reliance “ Essays—First logic (1)” Annals of Mathematics. Vol. 33, 1932. Series. 1841. Alonzo Church “A Set of postulates for the foundation of Euclid. The Thirteen Books of Euclid's Elements. (3 Vol. logic (2)” Annals of Mathematics. Vol. 34, 1933. translated by Thomas Heath. Cambridge University Alonzo Church The Calculi of Lambda-Conversion Press. 1925). Circa 300BC. Princeton University Press. 1941. Scott Fahlman. A Planning System for Robot Construction Will Clinger. Foundations of Actor Semantics MIT Tasks MIT AI TR-283. June 1973. Mathematics Doctoral Dissertation. June 1981. Adam Farquhar, Anglela Dappert, Richard Fikes, and Alain Colmerauer and Philippe Roussel. “The birth of Wanda Pratt. “Integrating Information Sources Using Prolog” History of Programming Languages ACM Context” Logic Knowledge Systems Laboratory. KSL- Press. 1996 95-12. January, 1995. F. S. Correa da Silva, J. M. Abe, and M. Rillo. “Modeling Solomon Feferman (1984a) “Toward Useful Type-Free Paraconsistent Knowledge in Distributed Systems”. Theories, I” in Recent Essays on Truth and the Liar Technical Report RT-MAC-9414, Instituto de Paradox. Ed. Robert Martin (1991) Claraendon Press. Matematica e Estatistica, Universidade de Sao Paulo, Solomon Feferman (1984b) “Kurt Gödel: Conviction and 1994. Caution” Philosophia Naturalis Vol. 21. James Crawford and Ben Kuipers. “Negation and proof by Solomon Feferman (1991) "Reflecting on incompleteness", contradiction in access-limited logic.” AAAI-91. Journal of Symbolic Logic. Haskell Curry “Some Aspects of the Problem of Solomon Feferman (1998) In the Light of Logic Oxford Mathematical Rigor” Bulletin of the American University Press. Mathematical Society Vol. 4. 1941. Solomon Feferman (2000) “Does reductive proof theory Haskell Curry. “The combinatory foundations of have a viable rationale?” Erkenntnis 53. mathematics” Journal of Symbolic Logic. 1942. Solomon Feferman (2004) “Tarski‟s Conceptual Analysis Michael Cusumano and Richard Selby, R. Microsoft for Semantical Notions” Sémantique et Épistémologie Secrets: How the World‟s Most Powerful Software http://math.stanford.edu/~feferman/papers/conceptanaly Company Creates Technology, Shapes Markets, and sco.pdf Manages People. Free Press. 1995 Solomon Feferman (2006a) “The nature and significance of Newton da Costa Inconsistent Formal Systems (Sistemas Gödel's incompleteness theorems” lecture for the Princeton Formais Inconsistentes in Portuguese) Doctoral Institute for Advanced Study Gödel Centenary Program, dissertation. University of Paraná. 1963. Nov. 17, 2006. Ole-Johan Dahl and Kristen Nygaard. “Class and subclass http://math.stanford.edu/~feferman/papers/Godel-IAS.pdf declarations” IFIP TC2 Conference on Simulation Solomon Feferman (2006b) “Lieber Herr Bernays! Lieber Programming Languages. May 1967. Herr Gödel! Gödel on finitism, constructivity and Julian Davies. “Popler 1.5 Reference Manual” University Hilbert's program” submitted version of lecture for the of Edinburgh, TPU Report No. 1, May 1973. Gödel centenary conference, Horizons of Truth, Vienna,

September 26, 2009 Page 27 of 36

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

September 26, 2009 Page 28 of 36

Carl Hewitt and Henry Baker Laws for Communicating Carl Hewitt (2008d). ORGs (Organizations of Restricted Parallel Processes IFIP. August 1977. GeneralityTM): Strong Paraconsistency and Carl Hewitt. “Viewing Control Structures as Patterns of Participatory Behavioral Model Checking Google Knol. Passing Messages” Journal of Artificial Intelligence. Carl Hewitt (2008e). ORGs for Scalable, Robust, Privacy- June 1977. Friendly Client Cloud Computing IEEE Internet Carl Hewitt and Peter de Jong. “Open Systems”' Computing September/October 2008. Perspectives on Conceptual Modeling, Brodie, Carl Hewitt (2009a) Perfect Disruption: The Paradigm Mylopoulos, and Schmidt (eds.), Springer-Verlag, 1983. Shift from Mental Agents to ORGs IEEE Internet Carl Hewitt. “The Challenge of Open Systems” Byte Computing. Jan/Feb 2009. Magazine. April 1985. Carl Hewitt (2009b) A historical perspective on developing Carl Hewitt (1986). “Offices Are Open Systems” ACM foundations for client cloud computing: The Paradigm Transactions on Information Systems 4(3) Shift from "Inconsistency Denial" to "Rapid Recovery" Carl Hewitt (1990). “Towards Open Information Systems (Revised version of "Development of Logic Semantics” International Workshop on Distributed Programming: What went wrong, What was done about Artificial Intelligence it, and What it might mean for the future" AAAI Carl Hewitt (1991). “Open Information Systems Workshop on What Went Wrong. AAAI-08.) ArXiv. Semantics” Journal of Artificial Intelligence. January January 30, 2009. 1991. Carl Hewitt (2009c) “ActorScript™: Industrial strength Carl Hewitt and Jeff Inman. “DAI Betwixt and Between: integration of local and nonlocal concurrency for Client- From „Intelligent Agents‟ to Open Systems Science” cloud Computing” ArXiv. 0907.3330 IEEE Transactions on Systems, Man, and Cybernetics. David Hilbert (1926) “Über das Unendliche” Nov. /Dec. 1991. Mathematische Annalen, 95: 161-90. (“On the Infinite” Carl Hewitt and Gul Agha. “Guarded Horn clause English translation in van Heijenoort. 1967). languages: are they deductive and Logical?” David Hilbert and Paul Bernays. Grundlagen der International Conference on Fifth Generation Computer Mathematik I. (L'Harmattan edition 2001) 1934 Systems. Ohmsha 1988. Tony Hoare. “Communicating Sequential Processes” Carl Hewitt. (2006). “What is Commitment? Physical, CACM August, 1978. Organizational, and Social” COIN@AAMAS‟06. Tony Hoare. Communicating Sequential Processes. (Revised version to be published in Springer Verlag Prentice Hall. 1985. Lecture Notes in Artificial Intelligence. Edited by Javier Tony Hoare. “The verifying compiler: A grand challenge Vázquez-Salceda and Pablo Noriega. 2007) April 2006. for computing research” JACM. January 2003. Carl Hewitt (2007a). “Organizational Computing Requires Wilfrid Hodges (2006) “Tarski‟s Truth Definitions” Unstratified Paraconsistency and Reflection” Stanford Encyclopedia of Philosophy. COIN@AAMAS. 2007. Douglas Hofstadter. I am a Strange Loop Basic Books. Carl Hewitt (2008a) “A historical perspective on 2007. developing foundations for privacy-friendly client cloud Jim Holt. “Code-Breaker” The New Yorker February 6, computing: The paradigm shift from „inconsistency 2006. denial‟ to „semantic integration” (Revised version of Leon Horsten “Philosophy of Mathematics” The Stanford “Development of Logic Programming: What went Encyclopedia of Philosophy September 27, 2007. wrong, What was done about it, and What it might mean Matthew Huntbach and Graem Ringwood. Agent-Oriented for the future” in Proceedings of What Went Wrong and Programming: From Prolog to Guarded Definite Why edited by Mehmet Gőker and Daniel Shapiro, Clauses Sprinter. 1999. AAAI Press. 2008 pp 1-11) ArXiv. Daniel Ingalls. “The Evolution of the Smalltalk Virtual Carl Hewitt (2008b). “Norms and Commitment for ORGs Machine” Smalltalk-80: Bits of History, Words of (Organizations of Restricted Generality): Strong Advice. Addison Wesley. 1983. Paraconsistency and Participatory Behavioral Model Alan Kay. “Personal Computing” in Meeting on 20 Years Checking” April 28, 2008. of Computing Science Instituto di Elaborazione della http://normsandcommitmentfororgs.carlhewitt.info/ Informazione, Pisa, Italy. 1975. Carl Hewitt (2008c) “Large-scale Organizational http://www.mprove.de/diplom/gui/Kay75.pdf Computing requires Unstratified Reflection and Strong Jussi Ketonen and Richard Weyhrauch. “A decidable Paraconsistency” Coordination, Organizations, fragment of Predicate Calculus” Theoretical Computer Institutions, and Norms in Agent Systems III Jaime Science. 1984. Sichman, Pablo Noriega, Julian Padget and Sascha Thomas Kida. Don‟t Believe Everything You Think: The 6 Ossowski (ed.). Springer-Verlag. Basic Mistakes We Make in Thinking Prometheus Books. http://organizational.carlhewitt.info/ 2006. Carl Hewitt (2008d) “Middle Stephen Kleene and John Barkley Rosser “The Programming” Google Knol. inconsistency of certain formal logics” Annals of Mathematics Vol. 36. 1935.

September 26, 2009 Page 29 of 36

Stephen Kleene Recursive Predicates and Quantifiers http://ontolog.cim3.net/file/resource/presentation/DougL American Mathematical Society Transactions. 1943 enat_20051117/Cyc-DougLenat_20051117.ppt Frederick Knabe. “A Distributed Protocol for Channel- Henry Lieberman. “A Preview of Act 1” MIT AI memo Based Communication with Choice” PARLE 1992. 625. June 1981. Bill Kornfeld and Carl Hewitt. “The Scientific Community James Lighthill. "Artificial Intelligence: A General Metaphor” IEEE Transactions on Systems, Man, and Survey" Artificial Intelligence: a paper symposium. UK Cybernetics. January 1981. Science Research Council. 1973 Bill Kornfeld. Parallelism in Problem Solving MIT EECS Martin Löb. “Solution of a problem of Leon Henkin.” Doctoral Dissertation. August 1981. Journal of Symbolic Logic. Vol. 20. 1955. Robert Kowalski “Predicate Logic as Programming Per Martin-Löf “ then and now” The Language” Memo 70, Department of Artificial Foundational Debate. Kluwer. 1995. Intelligence, Edinburgh University. 1973 Donald Loveland. Report of a Workshop on the Future Robert Kowalski (1979) “Algorithm = Logic + Control” Directions of Automated Deduction NSF 1997. CACM. July 1979. http://www.cs.duke.edu/AutoDedFD/report/ Robert Kowalski (1986). “The limitation of logic” ACM Leopold Löwenheim (1915) “Über Möglichkeiten im Annual Conference on Computer Science. Relativkalkül” Mathematische Annalen 76. (Translated Robert Kowalski (1973) “Predicate Logic as Programming as “On possibilities in the calculus of relatives"”in Jean Language” Memo 70, Department of AI, Edinburgh van Heijenoort, 1967. From Frege to Gödel: A Source University. Book in Mathematical Logic, 1879-1931. Harvard Univ. Robert Kowalski 1988a. “The Early Years of Logic Press) Programming” CACM. January 1988. Michael Lynch The Nature of Truth MIT Press. 2001. Robert Kowalski (1988b). “Logic-based Open Systems” Donald MacKenzie. Mechanizing Proof. MIT Press. 2001. Representation and Reasoning. Stuttgart Conference Edwin Mares. “Relevance Logic” Stanford Encyclopedia Workshop on Discourse Representation, Dialogue of Philosophy. Jan. 2006. tableaux and Logic Programming. 1988. David Malone (2007) Dangerous Knowledge BBC Video. http://www.doc.ic.ac.uk/~rak/papers/open.pdf http://video.google.com/videoplay?docid=-3503877302082311448 Robert. Kowalski and Francesca Toni. “Abstract Edwin Mares. Relevant Logic Cambridge University Press. Argumentation” Artificial Intelligence and Law. 1996 2007 Robert Kowalski (2006) “The Logical Way to be John McCarthy. “Programs with common sense” Artificially Intelligent.” CLIMA VI. Springer Verlag. Symposium on Mechanization of Thought Processes. Robert Kowalski (2007) “What is Logic Programming?” National Physical Laboratory. Teddington, England. http://en.wikipedia.org/wiki/Talk:Logic_programming# 1958. What_is_Logic_Programming.3F John McCarthy. “Situations, actions and causal laws” Richard Kraut. “Plato” Stanford Encyclopedia of Stanford Artificial Intelligence Project: Memo 2. 1963 Philosophy. 2004. John McCarthy and Pat Hayes. “Some Philosophical Ernest Kurtz and Katherine Ketcham. The Spirituality of Problems from the Standpoint of Artificial Intelligence” Imperfection: Storytelling and the Search for Meaning Machine Intelligence 4. 1969 Bantam 1993. John McCarthy, Paul Abrahams, Daniel Edwards, Timothy Imre Lakatos. “A renaissance of empiricism in the recent Hart, and Michael Levin. Lisp 1.5 Programmer‟s philosophy of mathematics?” Mathematics, Science and Manual MIT Computation Center and Research Epistemology. 1978. Laboratory of Electronics. 1962. Imre Lakatos. Proofs and Refutations Cambridge John McCarthy. “Review of „Artificial Intelligence: A University Press. 1976 General Survey” Artificial Intelligence: a paper Imre Lakatos. Mathematics, Science and Epistemology symposium. UK Science Research Council. 1973. edited by J. Worrall and G. Currie. Cambridge John McCarthy. “Circumscription—a form of University Press. 1978. nonmonotonic reasoning.” Artificial Intelligence. 1980. Peter Landin. “A Generalization of Jumps and Labels” John McCarty. “Applications of circumscription to UNIVAC Systems Programming Research Report. formalizing common sense knowledge” Artificial August 1965. (Reprinted in Higher Order and Symbolic Intelligence. 1986. Computation. 1998) John McCarthy. “Generality in Artificial Intelligence” Bruno Latour Science in Action: How to Follow Scientists CACM. December 1987. and Engineers Through Society Harvard University John McCarthy. “A logical AI Approach to Context” Press. 1988. Technical note, Stanford Computer Science Department, Hannes Leitgeb. “What theories of truth should be like (but 1996. cannot be)” Philosophy Compass 2 (2). 2007. John McCarthy. Sterile Containers September 8, 2000. Doug Lenat “CYC: Lessons Learned in Large-Scale http://www.ai.sri.com/~rkf/designdoc/sterile.ps Ontological Engineering” November 17, 2005.

September 26, 2009 Page 30 of 36

John McCarthy. “What is Artificial Intelligence” September 1, Graham Priest and Koji Tanaka. “Paraconsistent Logic” 2007. The Stanford Encyclopedia of Philosophy. Winter 2004. http://www-formal.stanford.edu/jmc/whatisai/whatisai.html Graham Priest. “Wittgenstein‟s Remarks on Gödel‟s L. Thorne McCarty. “Reflections on TAXMAN: An Theorem” in Wittgenstein‟s Lasting Significance Experiment on Artificial Intelligence and Legal Routledge. 2004. Reasoning” Harvard Law Review Vol. 90, No. 5, March Graham Priest (2006). “60% Proof: Lakatos, Proof, and 1977. Paraconsistency” Drew McDermott and Gerry Sussman. “The Conniver http://garnet.acns.fsu.edu/~tan02/OPC%20Week%20Thr Reference Manual” MIT AI Memo 259. May 1972. ee/Priest.pdf Drew McDermott. The Prolog Phenomenon ACM Stephen Reed and Doug Lenat. “Mapping into SIGART Bulletin. Issue 72. July, 1980. Cyc” AAAI 2002 Conference Workshop on Ontologies for Vann McGee “In Praise of the Free Lunch: Why the Semantic Web July 2002. Disquotationalists Should Embrace Compositional Ray Reiter. Knowledge in Action: Logical Foundations for Semantics” Self-Reference CSLI Publications. 2006. Specifying and Implementing Dynamical Systems. MIT Casey McGinnis “Paraconsistency and logical hypocrisy” Press, 2001. The Logica Yearbook Praha. Greg Restall (2006). “Curry‟s Revenge: the costs of non- http://www.geocities.com/cnmcginnis/ParaLogHyp.pdf classical solutions to the paradoxes of self-reference” (to George Milne and Robin Milner. “Concurrent processes appear in The Revenge of the Liar ed. J.C. Beall. and their syntax” JACM. April, 1979. Oxford University Press. 2007) July 12, 2006. Robin Milner '”Elements of interaction: Turing award http://consequently.org/papers/costing.pdf lecture'” CACM. January 1993. John Alan Robinson, “A Machine-Oriented Logic Based Marvin Minsky (ed.) Semantic Information Processing on the Resolution Principle.” CACM. 1965. MIT Press. 1968. Bill Roscoe. The Theory and Practice of Concurrency Marvin Minsky and Seymour Papert. “Progress Report on Prentice-Hall. Revised 2005. Artificial Intelligence” MIT AI Memo 252. 1971. Scott Rosenberg. Dreaming in Code. Crown Publishers. Marvin Minsky, Push Singh, and Aaron Sloman: “The St. 2007. Thomas Common Sense Symposium: Designing Marcus Rossberg. “Second-Order Logic” Socrates Architectures for Human-Level Intelligence” AI Teaching Mobility Intensive Seminar, University of Magazine. Summer 2004. Helsinki, 16-19 May, 2005. Chris Mortensen. “The of Disjunctive Syllogism http://www.st-andrews.ac.uk/~mr30/SOL/SOL3.pdf is Not So Easily Proved.” Notre Dame Journal of John Barkley Rosser. “Extensions of Some Theorems of Formal Logic January 1983. Gödel and Church” Journal of Symbolic. Logic. 1(3) Chris Mortensen. Inconsistent Mathematics Kluwer 1936. Academic Publishers. 1995. Philippe Rouchy (2006). “Aspects of PROLOG History: Allen Newell and Herbert Simon. “The logic theory Logic Programming and Professional Dynamics” machine: A complex information processing system” TeamEthno-Online Issue 2, June 2006. IRE Transactions on Information Theory IT-2:61-79. Richard Routley (1979) “Dialectical Logic, Semantics and 1956. ” Erkenntnis 14 Mike Paterson and Carl Hewitt. “Comparative Richard Routley Relevant Logics and Their Rivals 1 Schematology” MIT AI Memo 201. August 1970. Ridgeview. 2003. Carl Petri. Kommunikation mit Automate. Ph. D. Thesis. Jeff Rulifson, Jan Derksen, and Richard Waldinger. “QA4, University of Bonn. 1962. A Procedural Calculus for Intuitive Reasoning” SRI AI Gordon Plotkin. “A powerdomain construction” SIAM Center Technical Note 73. November 1973. Journal of Computing September 1976. Bertrand Russell. “Mathematical logic as based on the George Polya (1957) Mathematical Discovery: On theory of types.”. American Journal of Mathematics. Understanding, Learning and Teaching Problem Solving 1908. Combined Edition Wiley. 1981. Earl Sacerdoti, et. al., “QLISP A Language for the Karl Popper(1962). Conjectures and Refutations Basic Interactive Development of Complex Systems” AFIPS. Books. 1976. Karl Popper. (1934) Logik der Forschung, Springer. (Logic Eric Sandewall. “A functional approach to non-monotonic of Scientific Discovery Routledge 2002). logic” Computational Intelligence. Vol. 1. 1985. Graham Priest. “Dialetheism” The Stanford Encyclopedia Eric Sandewall. From Systems to Logic in the Early of Philosophy (Winter 2004 Edition) Development of Nonmonotonic Reasoning. CAISOR. Graham Priest, and Richard Routley (1989) “The History July, 2006. of Paraconsistent Logic” in Paraconsistent Logic: Davide Sangiorgi and David Walker. The Pi-Calculus: A Essays on the Inconsistent Philosophia Verlag. Theory of Mobile Processes Cambridge University Graham Priest. “Paraconsistent Logic” Handbook of Press. 2001. Philosophical Logic Volume 6, 2nd ed. Kluwer. 2002

September 26, 2009 Page 31 of 36

Marek Sergot. “Bob Kowalski: A Portrait” Computational Jean van Heijenoort (1967) From Frege to Gödel. A Logic: Logic Programming and Beyond: Essays in Source Book in Mathematical Logic, 1897-1931, Honour of Robert A. Kowalski, Part I Springer. 2004. Harvard University Press. Dana Scott. “The Future of Proof” LICS 2006. Rineke Verbrugge (2003). "Provability Logic", The http://www.easychair.org/FLoC- Stanford Encyclopedia of Philosophy Summer 2003 06/scott_goedel_keynote_floc06.pdf Edition. Thoralf Skolem (1920) “Logico-combinatorial Richard Waldinger and R. Lee (1969) “PROW: a step investigations on the or provability of toward automatic program writing” IJCAI‟69. mathematical propositions: A simplified proof of a Peter Whalley. “Modifying the metaphor in order to theorem by Löwenheim” (English translation in Jean van improve understanding of control languages—the little- Heijenoort, 1967. From Frege to Gödel: A Source Book person becomes a cast of actors.” British Journal of in Mathematical Logic, 1879-1931. Harvard Univ. Press) Educational Technology. 2006. Natarajan Shankar. Metamathematics, Machines, and Bill Wilson (1952) Twelve Steps and Twelve Traditions Gödel‟s Proof Cambridge University Press. 1994. Alcoholics Anonymous. Ehud Shapiro. “The family of concurrent logic Terry Winograd. Procedures as a Representation for Data programming languages” ACM Computing Surveys. in a Computer Program for Understanding Natural September 1989 Language. MIT AI TR-235. January 1971. Stewart Shapiro. “Lakatos and logic Comments on Ludwig Wittgenstein. Remarks on the Foundations of Graham Priest‟s „60% proof: Lakatos, proof, and Mathematics. MIT Press. 1978. paraconsistency‟” Preprint 2006 Larry Wos, George Robinson, Daniel Carson (1965) http://garnet.acns.fsu.edu/~tan02/OPC%20Week%20Th “Efficiency and Completeness of the Set of Support ree/Commentary%20on%20Priest.pdf#search=%22par Strategy in Theorem Proving” JACM 12(4). aconsistency%202006%20filetype%3Apdf%22 Aki Yonezawa. Specification and Verification Techniques Wilfried Sieg and Clinton Field. “Automated search for for Parallel Programs Based on Message Passing Gödel proofs.” Annals of Pure and Applied Logic. Semantics MIT EECS Ph. D. December 1977. 2005. Ernst Zermelo. “Investigations in the foundations of set Aaron Sloman. “Must Intelligent Systems Be Scruffy?” theory” (English translation in From Frege to Gödel: A Evolving Knowledge in Natural Science and Artificial Source Book in Mathematical Logic, 1879-1931 Ed. Jean Intelligence. Pitman. 1990. van Heijenoort 1967). 1908. Peter Smith. An Introduction to Gödel‟s Theorems. Draft. 2006. http://www.godelbook.net/ Lee Smolin. The Trouble with Physics: The Rise of String Theory, the Fall of a Science, and What Comes Next Houghton Mifflin. 2006 Craig Smorynski. “The Incompleteness Theorems” Handbook of Mathematical Logic. North Holland. 1977. Michael Smyth. Power domains Journal of Computer and System Sciences. 1978. Gerry Sussman, Terry Winograd and Eugene Charniak. “Micro-Planner Reference Manual (Update)” AI Memo 203A, MIT AI Lab, December 1971. Alfred Tarski (1944) “The semantic conception of truth and the foundations of semantics” Philosophy and Phenomenological Research 4 (Reprinted in Readings in , Appleton-1944) Alfred Tarski and Robert Vaught (1957). “Arithmetical extensions of relational systems” Compositio Mathematica 13. Paul Tillich. Courage to be Press. 2000. Alan Turing. “On computable numbers, with an application to the .” 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)

September 26, 2009 Page 32 of 36

Appendix. Additional Principles of Direct Logic Direct Logic has the following usual principles for equality: This appendix contains additional principles of Direct 1=1 Logic.  = ⇨  = Relevance Logic 1 2 2 1 (1=2  2=3)⇨ 1=3 Direct Logic is related to Relevance Logic [Mares 2006] which attempts to weed out certain inferences as Nondeterministic λ-calculus unconvincing because they involve the introduction of irrelevancies. However, according to [Routley 1979], “The Direct Logic makes use of the nondeterministic abandonment of disjunctive syllogism is indeed the λ-calculus as follows: characteristic feature of the relevant logic solution to the o If E1 and E2 are expressions, then E1  E2 (E1 can implicational paradoxes.” Since Direct Logic incorporates reduce to E2 in the nondeterministic λ-calculus) is a disjunctive syllogism ((ΦΨ), ¬Φ ├ Ψ), it is not a proposition. Relevance Logic [Dunn and Restall 2002]. Relevance o If E is an expression, then E (E always converges Logic is unsuited for practical reasoning about large in the nondeterministic λ-calculus) is a proposition. software systems because it lacks standard Boolean o If E is an expression, then E (E is irreducible in equivalences, a useable Deduction Theorem, and a natural the nondeterministic λ-calculus) is a proposition. deduction proof system. o If E1 and E2 are expressions, then E1E2 (E1 can Classical logic allows many seeming irrelevancies to converge to E2 in the nondeterministic λ-calculus) slip in that are not valid in the strongly paraconsistent is a proposition. theories of Direct Logic as in the following: o If E is an expression, then 1E (E reduces to exactly 1 expression in the nondeterministic λ- Classical Logic Direct Logic calculus) is a proposition.

├ (⇨ (⇨ )) Basic axioms are as follows: ⊬⊥ (⇨ (⇨)) (true = =false) false ├ ((⇨ )  (⇨ )) (false = =true) false ⊬⊥ ((⇨)  (⇨)) (if true then E1 else E2) E1

├ ((  )⇨ ) (if false then E1 else E2) E2 ⊬⊥ ((  ) ⇨ ) (1  2)  (2  3)) ⇨ (1  3) ├ (⇨ (  )) (λ(x) F(x)))  F()  reduction ⊬⊥ ( ⇨ ()) 1 | 2  1 ├ ( )  nondeterministic reduction to first alternative  ⊬⊥ ( ) 1 |2  2  nondeterministic reduction to second alternative However, note that the following hold in Direct Logic: F1  F2 ⇨ F1()  F2() Direct Logic  an application reduces if its operator reduces

1  2 ⇨ F(1)  F(2) ,  ├⊥   an application reduces if its operand reduces ├⊥ (├⊥ ) 1  2 ⇨ (1  2) 1  2 ⇔ ((1  2  2)  (1  1 =2)) ├⊥ ()  1 ⇔ (   (1  2) ⇨ 1=1) 80 (⇨ )├⊥ (⇨ (⇨ ))  ⇨ E=E 1 ⇨  (1  2)  ⇨ (λ(x) E) Equality E1=E2 ⇨ (1E1 ⇔ 1E2) Note that, in Direct Logic, equality (=) is not (E1= =E2) ⇔ (E1  E2) defined on (abstract) propositions. ( =   F) ⇨ F( )=F( ) 1 2 1 1 2 (F1=F2  1) ⇨ F1()=F2() P[E] ⇨ (1P  1E) 80 Contrary to [Besnard and Schaub 2003]

September 26, 2009 Page 33 of 36

(1=2  1P) ⇨ (P[1] ⇨ P[2]) Noncompactness 1F ⇨ F=(λ(x) F(x))  abstraction The Actor model makes use of two fundamental orders on events [Baker and Hewitt 1977; Clinger 1981, Hewitt Set Theory 2006]: The set of all sets in Direct Logic is called Sets and is 1. The activation order (≈≈>) is a fundamental order that axiomatised below. models one event activating another (there is energy flow from an event to an event which it activates). The x: x{ }  the { } has no elements activation order is discrete: sSets: { }s  { } is a subset of every set e ,e Events Finite[{eEvents | e ≈≈>e ≈≈>e }] Since Direct Logic uses choice functions instead of 1 2 : 1 2 existential quantifiers, we have the following axiom: 2. The arrival order of a serialized Actor x ( ) models 퐱 sSets: s{ } ⇨ Choice(s)s the (total) order of events in which a message arrives at Note that SetsSets. x. The arrival order of each x is discrete: e1,e2Events: Finite[{eEvents | e1 e e2}] The basic axioms of set theory are: 퐱 퐱 The combined order (denoted by →) is defined to be the s1,s2Sets; x: s1s2 ⇨ (xs1 ⇨ xs2) transitive closure of the activation order and the arrival  if s1 is a subset of s2 ,then x is an orders of all Actors. So the following question arose in the of s1 implies x is an element of s2 early history of the Actor model: “Is the combined order s1,s2Sets: (s1={ }SubsetChoices2(s1)s2)⇨s1s2 discrete?” Discreteness of the combined order captures an where important intuition about computation because it rules out counterintuitive computations in which an infinite number s1,s2Sets: s1≠{ } ⇨ SubsetChoices2(s1)s1 of computational events occur between two events (à la  if s1 is empty or the choice of an element of Zeno). s1 (depending in an arbitrary way on s2) is Hewitt conjectured that the discreteness of the activation also an element of s2 ,then s1 is a subset of order together with the discreteness of all arrival orders s2 implies that the combined order is discrete. Surprisingly 81 x; s1,s2Sets: xs1s2 ⇔ (xs1  xs2) [Clinger 1981; later generalized in Hewitt 2006] answered the question in the negative by giving a counterexample. x; s ,s Sets xs s (xs  xs ) 1 2 : 1 2 ⇔ 1 2 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 of sentences that is inconsistent with the if s={ } then 0 else 1+Count(s-{Choice(s)}) discreteness of the combined order and does not 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:82 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. ---Nicolaas de Bruijin83 x: x ⇔ IntegerGenerator()x 84  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., FidoDogsXML

81 In general we have the following: Suppose that s is a nonempty set 82 The axiom can be justified using results from General x: xis F(i) ⇔ xF(UnionChoiceF(s,x)) Relativity 83 where x: UnionChoiceF(s,x))s Quoted by Bob Boyer [personal communication 12 Jan. 2006].

September 26, 2009 Page 34 of 36

Unlike First Order Logic, there is no unrestricted The universe of sets can be defined as follows:86 quantification in Direct Logic. So the proposition Sets ≡ XML+ - XMLwithActors dDogs Mammal[d] is about dogs in XML. The base equality built into Direct Logic is equality for XML, not of elements of XML+ can be defined using the equality in some abstract “domain”. In this way Direct following Restricted Comprehension Axiom: Logic does not have to take a stand on the various ways that dogs, photons, quarks and everything else can be d; e: e{ Xd | P[X] } ⇔ (P[e] ] ed) considered “equal”! 87 Theorem. XML+ is the universe, i.e., This axiomization omits certain aspects of standard XML,  ⇨ (EXML+  EXML+) e.g., attributes, namespaces, etc. Provably Inference Reflected Propositions in Two XML expressions are equal if and only if they are Theories of Direct Logic both atomic and are identical or are both elements and have the same tag and the same number of children such that the Don’t believe everything you think. corresponding children are equal. Thomas Kida [2006]

The following are axioms for XML: Provably Inference Reflected propositions for T are those  such that (Atomics  Elements) = XML ├ ((├ ) ├ ) (Atomics  Elements) = { } T T T

 Atomics and Elements are disjoint Naively one might suppose that the above proposition could Tags  Atomics be taken as an axiom of Direct Logic. The naive intuition is x: xElements ⇔ x= x1…xLength(x) that if a proposition is provable in a theory, then it can be where xi is the ith subelement of x and inferred in the theory. However, as shown below, if the Tag(x) is the tag of x above proposition were taken as an axiom, then every Length(x) is the number of subelements of x proposition would be provable!88

A set pXML is defined to be inductive (written A way to understand this paradox is as follows: 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 : In Direct Logic, simply because a proposition is provable in a theory (i.e., (pXML; x1…xnp; tTags: there is an argument in the theory for Inductive[p] ⇨ (Atomics  p  x1…xnp) the proposition) is not by itself The Principle of Induction for XML is as follows: sufficient to infer in the theory that the pXML: Inductive[p] ⇨ p = XML proposition holds. Instead, arguments both for and against the proposition XML Plus (XML+) is the domain of Direct Logic that is should be considered. obtained by first extending the Atomics (described above) with Actors85 (see [Hewitt 2009c]) in order to create Definition. XMLwithActors.. Then XML+ is defined recursively by the PrInfers ≡ Fix(Diagonalize)1 following axioms:  where Diagonalize ≡ λ(s)  (├ s ) ├  T T 0 XML+ ≡ XMLwithActors i+1 i i; x (xXML ⇔ xXML ) 86 : + + Note that SetsSets 87 i What about Cantor‟s set defined as follows: XML+ ≡ i XML+ Cantor ≡ {xXML | xXML } + + Clearly CantorXML+. This illustrates that Cantor is not all subsets of XML+, just the ones whose elements are in XML+. For 84 Lisp was an important precursor of XML. The Atomics example XML+Cantor even though XML+XML+ because axiomatised below correspond roughly to atoms and the XML+XML+. It is impossible in Direct Logic to get “outside” Elements to lists. XML+ and its subsets. 85 λ-expressions are a subset of Actors (see appendix below) 88 Modulo questions of Admissibility

September 26, 2009 Page 35 of 36

Theorem89: If  is Provably Inference Reflected for T and (├ PrInfers)├  is Admissible for then ├  T T T, T

Proof: Suppose that  is provably infers reflected for T and

(├ PrInfers) ├  is Admissible for . T T T It is sufficient to prove ├  T Lemma: ├ (PrInfers((├ PrInfers)├ ))) T T T Proof:

PrInfers  Fix(Diagonalize)  Diagonalize (Fix(Diagonalize))

λ(s) (├ s )├  (Fix(Diagonalize)) T T    (├ Fix(Diagonalize) )├   T T

   (├ PrInfers)├   T T

 ((├ PrInfers) ├ ) T T

 by Admissibility of (├ PrInfers)├  T T

Proof of theorem90

Suppose ├ ((├ )├ ) T T T We need to show that ├  T

├ (PrInfers ├ ((├ PrInfers) ├ ))  lemma T T T T

├ ((├ PrInfers) ├ (├ ((├ PrInfers) ├ ))) T T T T T T  soundness on above

├ ((├ PrInfers)├ (├ ((├ ├ PrInfers)├ (├ )))) T T T T T T T T  soundness on (├ PrInfers)├  T T ├ ((├ PrInfers)├ (├ ├ PrInfers)) adequacy T T T T T

├ ((├ PrInfers) ├ (├ ))  detachment T T T T

├ ((├ PrInfers) ├ ) transitivity on hypothesis T T T ├ PrInfers  transitivity on lemma T

├ ├ PrInfers  adequacy on ├ PrInfers T T T

├ ((├ ├ PrInfers) ├ (├ )) T T T T T

 soundness on (├ PrInfers) ├  T T

├ ((├ PrInfers) ├ (├ )) T T T T  adequacy on ├ PrInfers T

├ ├   detachment on ├ PrInfers T T T ├   faithfulness on ├  T T

89 Generalization of Löb‟s Theorem [Löb 1955]. Also see [Dean and Kurokowa 2009]. 90 The proof is an adaptation for Direct Logic of [Löb 1955; Verbrugge 2003].

September 26, 2009 Page 36 of 36