Giorgi Japaridze Villanova University Computability, Logic, and Computability Logic Outstanding Faculty Research Award lecture April 21,
2 Outline Computability Logic (CoL) is a mathematical platform and a long-term program for rebuilding logic into a formal theory of computability, in the same sense as traditional (classical) logic is a formal theory of truth. First outlined in: G.Japaridze, “Introduction to Computability Logic”, Annals of Pure and Applied Logic 123 (2003), pp computabilitylogic
2 Outline Computability Logic (CoL) is a mathematical platform and a long-term program for rebuilding logic into a formal theory of computability, in the same sense as traditional (classical) logic is a formal theory of truth. First outlined in: G.Japaridze, “Introduction to Computability Logic”, Annals of Pure and Applied Logic 123 (2003), pp computability logic
2 Outline Computability Logic (CoL) is a mathematical platform and a long-term program for rebuilding logic into a formal theory of computability, in the same sense as traditional (classical) logic is a formal theory of truth. First outlined in: G.Japaridze, “Introduction to Computability Logic”, Annals of Pure and Applied Logic 123 (2003), pp computability logic
2 Outline Computability Logic (CoL) is a mathematical platform and a long-term program for rebuilding logic into a formal theory of computability, in the same sense as traditional (classical) logic is a formal theory of truth. First outlined in: G.Japaridze, “Introduction to Computability Logic”, Annals of Pure and Applied Logic 123 (2003), pp computability logic
What is computability? Computability is the ability to solve a problem (“computational problem”) in an effective manner. 3
What is computability? Computability is the ability to solve a problem (“computational problem”) in an effective manner. 3
What is computability? Traditionally, a computational problem is understood as a function (to be computed). Computability is the ability to solve a problem (“computational problem”) in an effective manner. 3
What is computability? Traditionally, a computational problem is understood as a function (to be computed). Computability is the ability to solve a problem (“computational problem”) in an effective manner. 3
What is computability? Traditionally, a computational problem is understood as a function (to be computed). Computability is the ability to solve a problem (“computational problem”) in an effective manner. A function (mapping) f is an assignment of a unique value f(a) to each object a of the universe of discourse, such as, for instance, i.e. f(a)=a 2 … a: f(a): 3
What is computability? Traditionally, a computational problem is understood as a function (to be computed). Computability is the ability to solve a problem (“computational problem”) in an effective manner. Effective means mechanical, i.e. algorithmic, i.e. doable by a machine (computer). Computability of a function f means existence of a machine which computes f, i.e. which, for any input a, returns the output f(a). 3
Polynomial equation: Has integral roots? 2x – = 0 2x – 9 = 0 x x – 25 = 0 x x x – x x = 0 x x – y y – z z = 0 x x – 2 = 0 YES (x=15) NO YES (x=5) YES (x=1) YES (x=5, y=4, z=3) NO E.g., the problem of existence of integral roots in polynomial equations: Not all functions are computable! 4 …
Traditionally, the pursuit of logic is to provide a systematic answer to the question “What is (always) true?” ALL humans are mortal IF ALL humans are mortal AND Socrates is a human THEN Socrates is mortal What is logic? true logically true (“always true”, “valid”) 5
Traditionally, the pursuit of logic is to provide a systematic answer to the question “What is (always) true?” What is logic? 5 ALL grumbers are clipsy IF ALL grumbers are clipsy AND molic is a grumber THEN molic is clipsy true? logically true (“always true”, “valid”)
Traditionally, the pursuit of logic is to provide a systematic answer to the question “What is (always) true?” What is logic? Logical constants (operators): ALL, IF…THEN, AND Logical variables: human, mortal, Socrates 5 ALL humans are mortal IF ALL humans are mortal AND Socrates is a human THEN Socrates is mortal true logically true (“always true”, “valid”)
Classical logic (NOT, Negation). (AND, Conjunction). (OR, Disjunction). (IF…THEN, Implication). A B can be defined as A B (FOR ALL, Universal quantifier). (EXISTS, Existential quantifier). Language (operators): 6 There are strict (formal, machine-verifiable) methods for proving that a given sentence is logically true, or whether it logically follows from (is a logical consequence of) a given set of other sentences. “Manageability”
There are only two propositions: (true, ⊤,1) and (false, ⊥,0). Classical logic sees no difference between two true or two false propositions, so “2+2=4” = “snow is white” = ; “2+2=5” = “snow is black” =, just like set theory sees no difference between {x | x is a number with x>x} and {x | x is an elephant that can fly}. Propositions The pursuit of classical logic is to provide a systematic answer to the question “What is (always) true?”. In this sense, classical logic is a formal theory of truth. Truth is a property of propositions (statements, sentences). (Predicates are nothing but “propositions with variables”, and this informal talk does not terminologically differentiate between predicates and propositions). 7
Computability revisited A computational problem is understood as a function (to be computed). Computability is the ability to solve a problem (“computational problem”) in an effective manner. Effective means mechanical, i.e. algorithmic, i.e. doable by a machine (computer). Computability of a function means existence of a machine which computes it. 8
Computability revisited A computational problem is understood as a function (to be computed). Computability is the ability to solve a problem (“computational problem”) in an effective manner. Effective means mechanical, i.e. algorithmic, i.e. doable by a machine (computer). Computability of a function means existence of a machine which computes it. game won game wins Such a machine is said to be a winning strategy, or solution. 8
algorithmic arbitrary Behavior: (strategy) MACHINE (Green, Computer, Proponent, Robot, Agent) ENVIRONMENT (Red, User, Opponent, Nature, Devil) good guy bad guy The players 9
Edges stand for moves, with their color indicating who moves. Nodes stand for legal positions, i.e., (legal) finite runs. This game has the following 16 legal runs: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Structure indicates what runs (sequences of colored moves) are possible, i.e., legal. Content indicates, for each legal run, the player who is considered the winner. The color of each node indicates the winner in the corresponding position. Which of the runs are won by the machine? Game=(Structure, Content) 10
Computational problems in the traditional sense, i.e. functions, can be seen as the following types of depth-2 games: Input (Question) Output (Answer) Why is the root green? Why are the 2 nd -level nodes red? Why does each group of 3 rd -level nodes have exactly one green node? What particular function is this game about? It corresponds to the situation where there was no input. The machine has nothing to answer for, so it wins. They correspond to situations where there was an input but no output was generated by the machine. So the machine loses. Because a function has exactly one (“correct”) value for each argument. The successor function: f(n)=n+1. Traditional computational problems as games 11
Why don’t we get rid of the “one green node per sibling group” restriction for the third-level nodes. Many natural problems, such as the problem of finding a prime integer between n and 2n, or finding an integral root of x 2 -2n=0, may have more than one as well as less than one solution. That is, there can be more than one as well as less than one “right” output on a given input n Departing from functionality 12
And why not further get rid of any remaining restrictions on the colors of whatever-level nodes and whatever-level arcs. One can easily think of natural situations where, say, some inputs do not obligate the machine to generate an output and thus the corresponding second-level nodes should be green. An example would be the case when the machine is computing a partially-defined function f and receives an input n on which f is undefined Departing from the input-output paradigm 13
Permitting longer-than-2 or even infinitely long branches allows us to capture problems with arbitrarily high degrees of interactivity and arbitrarily complex interaction protocols. The task performed by a network server is an example of an infinite dialogue between the server and its environment --- the collection of clients, or let us just say the rest of the network Departing from the depth-2 restriction 14
It also makes sense to consider “dialogues” of lengths less than Games of depth 0 are said to be elementary. There are exactly two elementary games. We identify them with “true” and “false”. Elementary games 15
It also makes sense to consider “dialogues” of lengths less than 2. Games of depth 0 are said to be elementary. There are exactly two elementary games. We identify them with “true” and “false”: = “Snow is white” = “2+2=4” “Snow is black” = “2+2=5” = 12 Elementary games Proposition = Elementary game Thus, propositions are special, simplest, cases of games --- games with no moves, automatically won by the machine if true and lost if false. 15 Correspondingly, truth is a special case of computability --- computability restricted to propositions.
Logic revisited There are only two propositions: (true, ⊤,1) and (false, ⊥,0). The pursuit of classical logic is to provide a systematic answer to the question “What is (always) true?”. In this sense, classical logic is a formal theory of truth. Truth is a property of propositions (statements, sentences). computability computableand how computability Computability games (problems, tasks) infinitely many games. CoL is a (conservative) generalization/refinement of classical logic. 16
Logical operators in CoL stand for operations on games. There is an open-ended pool of operations of potential interest, and which of those to study may depend on particular needs and taste. Yet, there is a core collection of the most basic and natural game operations: Among these we see all operators of classical logic, and our choice of the classical notation for them is no accident. Classical logic is nothing but the elementary fragment of CoL (the fragment dealing only with elementary games). And each of the classically- shaped game operations, when applied to elementary games, naturally turns out to be virtually the same as the corresponding operator of classical logic. E.g., if A and B are elementary games, then so is A B, and the latter is exactly the classical conjunction of A and B understood as an (elementary) game. The operators of CoL 17 Quantifiers: Negation: Conjunctions and disjunctions: Recurrences and corecurrences: Implications:
Chess Chess= Negation b a cdef G b a cdef GG Negation is a role switch operation: Machine’s moves and wins become Environment’s moves and wins, and vice versa. 18
Chess Chess=Chess Negation is a role switch operation: Machine’s moves and wins become Environment’s moves and wins, and vice versa. Negation b a cdef G 18 b a cdef GG
Chess Chess= Chess Negation b a cdef G Negation is a role switch operation: Machine’s moves and wins become Environment’s moves and wins, and vice versa. 18 b a cdef GG
Chess Chess= Chess Negation b a cdef G Negation is a role switch operation: Machine’s moves and wins become Environment’s moves and wins, and vice versa. 18 b a cdef GG
Chess Chess= Chess Negation b a cdef G Negation is a role switch operation: Machine’s moves and wins become Environment’s moves and wins, and vice versa. 18 b a cdef GG
Choice conjunction ⊓ A0A0 A1A1 A 0 ⊓ A 1 01 Choice disjunction ⊔ A0A0 A1A1 A 0 ⊔ A 1 01 Choice conjunction and disjunction 19
Choice universal quantifier ⊓ A(0) 0 1 A(1)A(2)... 2 ⊓ xA(x) Choice existential quantifier ⊔ A(0) 01 A(1)A(2)... 2 = A(0) ⊓ A(1) ⊓ A(2) ⊓... ⊔ xA(x) = A(0) ⊔ A(1 ) ⊔ A(2) ⊔... Choice quantifiers 20
This game can be written as ⊓ x ⊔ y (y=x+1) The problem of computing a function 21
This game can be written as ⊓ x ⊔ y (y=x+1) The problem of computing a function 21
⊔ y (y=2+1) The problem of computing a function 21
⊔ y (y=2+1) The problem of computing a function 21
3=2+1 The problem of computing a function 21
4=2+1 The problem of computing a function 21
This game is about deciding what predicate? Even(x) How can it be written? ⊓ x ( Even(x) ⊔ Even(x) ) Generally, the problem of deciding a predicate p(x) can be written as ⊓ x ( p(x) ⊔ p(x) ) The problem of deciding a predicate 22
The problem of deciding a predicate 22 The language of CoL allows us to systematically (in a standardized and convenient way) express/capture an infinite variety of computational problems, only some of which may otherwise have established names (and ad hoc descriptions) in the literature.
Parallel operators 23 A B, A B --- parallel plays of A and B. To win a parallel need to win in components conjunction both of the disjunction one of the Parallel conjunction and disjunction A B = def A B
Law of excluded middle Chess ⊔ Chess Chess Chess 24
Law of excluded middle Chess ⊔ Chess Chess Chess 24
Law of excluded middle Chess ⊔ Chess Chess Chess 24
Law of excluded middle Chess ⊔ Chess Chess Chess 24
Law of excluded middle Chess ⊔ Chess Chess Chess 24
Blind quantifies: , 25 xA(x) is a game where, in order to win, the machine has to play in such a way that it wins the game A(x) for every possible (yet unknown) value of x. xA(x) is similar, only, here it is sufficient to win A(x) for just one value of x. x ( Even(x) ⊔ Odd(x) ) is unwinnable ⊓ x ( Even(x) ⊔ Odd(x) ) is easily won
Reduction 26 Q P is a game such that, in order to win, the machine needs to win in P as long as the environment wins --- perhaps repeatedly --- in Q, where the roles of the two players are interchanged. The intuitive meaning of such a play is reducing P to Q. THESIS: A problem P is algorithmically reducible to a problem Q (according to our broadest intuition of reduction) iff the problem Q P has an algorithmic solution. Reducing the “paternal grandfather” problem to the “father” problem: ⊓ x ⊔ y (y is x’s father) ⊓ x ⊔ y (y is x’s paternal grandfather) Who is Tom’s paternal grandfather? Who is Tom’s father? Bob Who is Bob’s father? Jim
Logical Consequence in CoL 27 We say that F is a logical consequence of E 1,…,E n iff E 1 … E n F is always computable. The “manageability” (axiomatization, mechanization) of logical consequence has been established for ever more expressive fragments of CoL, including the ( , , , , , , , , , ) fragment in which CLA is built (next slide). Such “manageability” results make CoL a systematic problem-solving tool. Namely, in order to find an algorithmic solution for a problem F, it is sufficient to establish its being a logical consequence of some problems E 1,…,E n whose solutions are already known. THEOREM: If F is a logical consequence of E 1,…,E n and the latter have algorithmic solutions, then so does the former; moreover, a solution for F can be automatically extracted from the solutions of E 1,…, E n. The intuitive meaning of “F is a logical consequence of E 1,…,E n ” is that F is reducible to E 1,…,E n in a uniform, interpretation-independent (“logical”) way.
Peano Axioms 1. x (0=x’) 2. x y (x’=y’ x=y) 3. x (x+0=x) 4. x y ( x+y’=(x+y)’ ) 5. x (x 0=0) 6. x y ( x y’=(x y)+x ) 7. F(0) x ( F(x) F(x’) ) xF(x) for each formula F not containing , , , 8. x y (y=x’) Extra-Peano Axiom The only nonlogical rule of inference is Constructive Induction: F(0) x ( F(x) F(x’) ) x F(x) 28 Additional functions and relations can be introduced through defining axioms CLA: the number theory based on CoL And the only logical rule of inference is CoL’s Logical Consequence. Language , , , , , , , , , ; =; 0, ’,+, (a’ means a+1)
29 The utility of CLA CLA is not only sound, but also “practically complete”: If a problem is not provable in CLA, then one is unlikely to ever find an algorithmic solution for it: such an algorithm either does not exist, or its correctness cannot be verified based on our (Peano’s) standard knowledge of natural numbers and their properties. THEOREM: If a problem (formula) F is provable in CLA, then F is computable. A computing algorithm (solution) for F can be automatically extracted from F’s proof. The following formulas are provable in CLA. What does this imply? x y z (z=x+y) x ( y (x=y+y) y (x=y+y) ) x y z (z=x+y) x ( y (x=y+y) y (x=y+y) ) Addition is a total (always defined) function Addition is a computable function Every number is either even or not even “Evenness” is a decidable predicate Generally, if you are looking for an algorithm computing a function f(x), it would be sufficient to just find a proof of x y ( y=f(x) ). Similarly, a deciding algorithm for a predicate p(x) can be obtained from a proof of x ( p(x) p(x) ).
30 CLA as a programming language CLA and similar CoL-based axiomatic theories can be seen as “very high-level” or “very declarative” programming languages, where programming simply means proof-searching for the target problem. Among the advantages of this paradigm are: The notorious program verification problem is FULLY neutralized: a proof from which a program is extracted automatically serves as a (best possible) verification of the correctness of the program. Each line/formula of such a program/proof is commented in an extreme sense: the formula is its own (best possible) comment. Proof-search is easier and more intuitive than algorithm-search. Besides, algorithm- search still involves proof-search (of the correctness of the algorithm) anyway. Using the ever more advanced methods of AI, proof-search itself can be automated. If and when reasonably efficient automatic proof-searchers are developed, CLA and similar systems become declarative programming languages in an extreme sense, where all human “programming” reduces to just specifying the target problem/task for which a program is sought.
31 Summary Computability Logic (CoL) is a formal theory of computability in the same sense as classical logic is a formal theory of truth. The language of CoL presents a convenient and expressive vernacular for specifying an infinite variety of computational problems, old or new, interactive or non-interactive. The deductive mechanism of CoL allows us to systematically find solutions for new problems from known solutions of old problems. CoL-based systems can be seen as programming languages where “programming” simply means theorem-proving. CoL Homepage: