CS 275 Automata and Formal Language Theory

Similar documents
CS 275 Automata and Formal Language Theory

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

Introduction to Turing Machines

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Automata Theory. Definition. Computational Complexity Theory. Computability Theory

Handouts. CS701 Theory of Computation

Computability Theory. CS215, Lecture 6,

Church s undecidability result

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 16 : Turing Machines

Gödel s Theorem: Limits of logic and computation

Friendly Logics, Fall 2015, Lecture Notes 1

Lecture 14 Rosser s Theorem, the length of proofs, Robinson s Arithmetic, and Church s theorem. Michael Beeson

ENEE 459E/CMSC 498R In-class exercise February 10, 2015

The Church-Turing Thesis and Relative Recursion

CST Part IB. Computation Theory. Andrew Pitts

Turing Centenary Lecture

(a) Definition of TMs. First Problem of URMs

Propositions as Types

258 Handbook of Discrete and Combinatorial Mathematics

The roots of computability theory. September 5, 2016

CS 275 Automata and Formal Language Theory

Introduction. Foundations of Computing Science. Pallab Dasgupta Professor, Dept. of Computer Sc & Engg INDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR

Foundations of Computation. Ana Bove

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

CA320 - Computability & Complexity

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lec. 14 : Turing Machines

What are the recursion theoretic properties of a set of axioms? Understanding a paper by William Craig Armando B. Matos

PROOFS IN PREDICATE LOGIC AND COMPLETENESS; WHAT DECIDABILITY MEANS HUTH AND RYAN 2.3, SUPPLEMENTARY NOTES 2

Informal Statement Calculus

The Turing Machine. Computability. The Church-Turing Thesis (1936) Theory Hall of Fame. Theory Hall of Fame. Undecidability

COMP-330 Theory of Computation. Fall Prof. Claude Crépeau. Lecture 1 : Introduction

Decidable Languages - relationship with other classes.

Computability, Undeciability and the Halting Problem

17.1 The Halting Problem

Fundamentals of Computer Science

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

7.1 The Origin of Computer Science

CS 275 Automata and Formal Language Theory. Proof of Lemma II Lemma (II )

Primitive recursive functions

Theory of Computer Science

Incompleteness Theorems, Large Cardinals, and Automata ov

AN INTRODUCTION TO COMPUTABILITY THEORY

Theory of Computation

About the relationship between formal logic and complexity classes

Gödel s Incompleteness Theorem. Overview. Computability and Logic

Theory of Computer Science. Theory of Computer Science. D8.1 Other Halting Problem Variants. D8.2 Rice s Theorem

Predicate Logic - Undecidability

The purpose here is to classify computational problems according to their complexity. For that purpose we need first to agree on a computational

Epistemological and Computational Constraints of Simulation Support for OR Questions

Large Numbers, Busy Beavers, Noncomputability and Incompleteness

Great Ideas in Theoretical Computer Science

The Turing machine model of computation

Theory of Computation (IX) Yijia Chen Fudan University

INF210 Datamaskinteori (Models of Computation)

CS 208: Automata Theory and Logic

Understanding Computation

Computer Sciences Department

The Legacy of Hilbert, Gödel, Gentzen and Turing

Opleiding Informatica

Panu Raatikainen THE PROBLEM OF THE SIMPLEST DIOPHANTINE REPRESENTATION. 1. Introduction

Algebraic Combinatorics, Computability and Complexity Syllabus for the TEMPUS-SEE PhD Course

Lecture 11: Gödel s Second Incompleteness Theorem, and Tarski s Theorem

CS 275 Automata and Formal Language Theory. Proof of Lemma II Lemma (II )

Automata Theory and Formal Grammars: Lecture 1

6.8 The Post Correspondence Problem

Undecidability COMS Ashley Montanaro 4 April Department of Computer Science, University of Bristol Bristol, UK

CSCI3390-Lecture 6: An Undecidable Problem

NONSTANDARD MODELS AND KRIPKE S PROOF OF THE GÖDEL THEOREM

The P-vs-NP problem. Andrés E. Caicedo. September 10, 2011

Hilbert s problems, Gödel, and the limits of computation

The Limit of Humanly Knowable Mathematical Truth

Undecidable Problems. Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science May 12, / 65

Peano Arithmetic. CSC 438F/2404F Notes (S. Cook) Fall, Goals Now

Theory of Computation CS3102 Spring 2014 A tale of computers, math, problem solving, life, love and tragic death

Undecidability. Andreas Klappenecker. [based on slides by Prof. Welch]

A Lower Bound of 2 n Conditional Jumps for Boolean Satisfiability on A Random Access Machine

ON COMPUTAMBLE NUMBERS, WITH AN APPLICATION TO THE ENTSCHENIDUGSPROBLEM. Turing 1936

Handbook of Logic and Proof Techniques for Computer Science

Turing machines and linear bounded automata

PREDICATE LOGIC: UNDECIDABILITY AND INCOMPLETENESS HUTH AND RYAN 2.5, SUPPLEMENTARY NOTES 2

CMPS 217 Logic in Computer Science. Lecture #17

Hilbert s Tenth Problem

Regular Languages and Finite Automata

185.A09 Advanced Mathematical Logic

Gödel, Turing, the Undecidability Results and the Nature of Human Mind

Turing Machines (TM) The Turing machine is the ultimate model of computation.

Turing machines and linear bounded automata

Gottfried Wilhelm Leibniz (1666)

Limits of Computability

Limits of Computation. Antonina Kolokolova

Propositional and Predicate Logic. jean/gbooks/logic.html

Theory of Computation Lecture Notes

6-1 Computational Complexity

Cogito ergo sum non machina!

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement:

Victoria Gitman and Thomas Johnstone. New York City College of Technology, CUNY

Theory of Computation Lecture 1. Dr. Nahla Belal

On Rice s theorem. Hans Hüttel. October 2001

Recursive Function Theory and Computability

Computability and Complexity Theory

Transcription:

CS 275 Automata and Formal Language Theory Course Notes Part III: Limits of Computation Chapt. III.1: Introduction Anton Setzer http://www.cs.swan.ac.uk/ csetzer/lectures/ automataformallanguage/current/index.html March 18, 2015 CS 275 Chapt. III.1 1/ 40

Computability Theory A computable function is a function f : A B such that there is a mechanical procedure for computing for every a A the result f (a) B. In this part (III) we study the limits of computation. The area studying computable functions and their limits is called computability theory. CS 275 Chapt. III.1 2/ 40

Examples Define exp : N N, exp(n) := 2n, where N = {0, 1, 2,...}. exp is computable. However, can we really compute exp(1000000000000000000000000000000000000000)? Let String be the set of strings of ASCII symbols. Define a function check : String {true, false} by true check(p) := false Is check computable or not? if p is a syntactically correct Java program, otherwise. CS 275 Chapt. III.1 3/ 40

Examples (Cont.) Define a function terminate : String {true, false}, true terminate(p) := false Is terminate computable? if p is a syntactically correct Java program with no input and outputs, which terminates; otherwise. CS 275 Chapt. III.1 4/ 40

Answer (To be filled in during the lecture) CS 275 Chapt. III.1 5/ 40

Examples (Cont.) Define a function is_sorting_fun : String {true, false}, true is sorting fun(p) := false Is is sorting fun computable? if p is a syntactically correct Java program, which has as input a list and returns a sorted list, otherwise. CS 275 Chapt. III.1 6/ 40

Explanation Assume is sorting fun were computable. Then we can construct (compute) a program which computes terminate as follows: Assume as input a string p. Check whether it is a syntactically correct Java program with no input and outputs. If no, terminate(p) = false, so return false. Otherwise, create from p a program q(p) which is a potential sorting function as follows: q(p) takes as input a list l. Then it runs p. If p has terminated, then it runs a known sorting function on l, and returns the result. CS 275 Chapt. III.1 7/ 40

Explanation If p terminates, then q(p) will be a sorting function, so is sorting fun(q(p)) = true = terminate(p). If p does not terminate, then q(p) does not terminate on any input, so is sorting fun(q(p)) = false = terminate(p). Our program returns now is sorting fun(q(p)) which is the result of terminate(p). So we have obtained by using a program for is sorting fun a program which computes terminate. But terminate is non-computable, therefore is sorting fun cannot be computable. CS 275 Chapt. III.1 8/ 40

Problems in Computability In order to understand and answer the questions we have to Give a precise definition of what computable means. That will be a mathematical definition. Such a notion is particularly important for showing that certain functions are non-computable. Then provide evidence that the definition of computable is the correct one. That will be a philosophical argument. Develop methods for proving that certain functions are computable or non-computable. CS 275 Chapt. III.1 9/ 40

Three Areas Three areas are involved in computability theory. Mathematics. Precise definition of computability. Analysis of the concept. Philosophy. Validation that notions found are the correct ones. Computer science. Study of relationship between these concepts and computing in the real world. CS 275 Chapt. III.1 10/ 40

Questions Related to The Above Given a function f : A B, which can be computed, can it be done effectively? (Complexity theory.) Can the task of deciding a given problem P1 be reduced to deciding another problem P2? (Reducibility theory). CS 275 Chapt. III.1 11/ 40

More Advanced Questions The following is beyond the scope of this module. Can the notion of computability be extended to computations on infinite objects (e.g. streams of data, real numbers,higher type operations)? (Higher and abstract computability theory). What is the relationship between computing (producing actions, data etc.) and proving? (Research by U. Berger and M. Seisenberger). CS 275 Chapt. III.1 12/ 40

Idealisation In computability theory, one usually abstracts from limitations on time and space. A problem will be computable, if it can be solved on an idealised computer, even if it the computation would take longer than the life time of the universe. CS 275 Chapt. III.1 13/ 40

Remark on Variables In this lecture I will often use i, j, k, l, m, n for variables denoting natural numbers. I will often use p, q and some others for variables denoting programs. I will use z for integers. Other letters might be used as well for variables. These conventions are not treated very strictly. Especially when running out of letters. CS 275 Chapt. III.1 14/ 40

History of Computability Theory Gottfried Wilhelmvon Leibnitz (1646 1716) Built a first mechanical calculator. Was thinking about a machine for manipulating symbols in order to determine truth values of mathematical statements. Noticed that this requires the definition of a precise formal language. CS 275 Chapt. III.1 15/ 40

History of Computability Theory David Hilbert(1862 1943) Poses 1900 in his famous list Mathematical Problems as 10th problem to decide Diophantine equations. CS 275 Chapt. III.1 16/ 40

Decision Problem Hilbert (1928) Poses the Entscheidungsproblem (German for decision problem). The decision problem is the question, whether we can decide whether a formula in predicate logic is provable or not. Predicate logic is the standard formalisation of logic with connectives,,, and quantifiers,. Predicate logic is sound and complete. This means that a a formula is provable if and only if it is valid (in all models). CS 275 Chapt. III.1 17/ 40

Decision Problem So the decidability of predicate logic is the question whether we can decide whether a formula is valid (in all models) or not. If predicate logic were decidable, provability in mathematics would become trivial. Entscheidungsproblem became one of the few German words which have entered the English language. CS 275 Chapt. III.1 18/ 40

History of Computability Theory Gödel, Kleene, Post, Turing (1930s) Introduce different models of computation and prove that they all define the same class of computable functions. CS 275 Chapt. III.1 19/ 40

History of Computability Theory Kurt Gödel (1906 1978) Introduced the (Herbrand-Gödel-) recursive functions in his 1933-34 Princeton lectures. CS 275 Chapt. III.1 20/ 40

History of Computability Theory Stephen Cole Kleene (1909 1994) Probably the most influential computability theoretist up to now. Introduced the partial recursive functions. CS 275 Chapt. III.1 21/ 40

History of Computability Theory Emil Post (1897 1954) Introduced the Post problems. CS 275 Chapt. III.1 22/ 40

History of Computability Theory Alan Mathison Turing (1912 1954) Introduced the Turing machine. Proved the undecidability of the Turing-Halting problem. CS 275 Chapt. III.1 23/ 40

Gödel s Incompleteness Theorem Gödel (1931) proves in his first incompleteness theorem: Every reasonable primitive-recursive theory is incomplete, i.e. there is a formula s.t. neither the formula nor its negation is provable. The theorem generalises to recursive i.e. computable theories as introduced later in this module. For the moment it suffices to understand recursive informally as intuitively computable. The notion primitive-recursive would be taught in an advanced module on computability theory. Primitive recursive functions form a restricted class of computable functions which contain all functions which are computable in a feasible way. CS 275 Chapt. III.1 24/ 40

Gödel s Incompleteness Theorem Therefore no computable theory proves all true formulae. Therefore, it is undecidable whether a formula is true or not. Otherwise, the theory consisting of all true formulae would be a complete computable theory. CS 275 Chapt. III.1 25/ 40

Undecidability of the Decision Problem Church and Turing (1936) postulate that the models of computation established above define exactly the set of all computable functions (Church-Turing thesis, sometimes called Church s thesis). Both established independently undecidable problems and proved that the decision problem is undecidable, i.e. unsolvable. Even for a class of very simple formulae we cannot decide the decision problem. CS 275 Chapt. III.1 26/ 40

Undecidability of the Decision Problem Church shows the undecidability of equality in the λ-calculus. Turing shows the unsolvability of the halting problem. It is undecidable whether a Turing machine (and by the Church-Turing thesis equivalently any non-interactive computer program of a Turing-complete programming language) eventually stops. That problem turns out to be the most important undecidable problem. CS 275 Chapt. III.1 27/ 40

Undecidability and the Limit of Human Beings The undecidability of the Turing Halting Problem has similarities with limits in physics such as Speed limited by speed of light. Heisenberg s uncertainty principle. It limits what human beings can do Even with the most advanced computers we cannot decide the Turing halting problem. CS 275 Chapt. III.1 28/ 40

History of Computability Theory Alonzo Church (1903-1995) CS 275 Chapt. III.1 29/ 40

History of Computability Theory Post (1944) studies degrees of unsolvability. This is the birth of degree theory. In degree theory one divides problems into groups ( degrees ) of problems, which are reducible to each other. Reducible means essentially relative computable. Degrees can be ordered by using reducibility as ordering. The question in degree theory is: what is the structure of degrees? CS 275 Chapt. III.1 30/ 40

Degrees Reducible to Degree computable problems CS 275 Chapt. III.1 31/ 40

History of Computability Theory Yuri Vladimirovich Matiyasevich ( 1947) Solves 1970 Hilbert s 10th problem negatively: The solvability of Diophantine equations is undecidable. CS 275 Chapt. III.1 32/ 40

History of Computability Theory Stephen Cook(Toronto) Cook (1971) introduces the complexity classes P and NP and formulates the problem, whether P NP. CS 275 Chapt. III.1 33/ 40

Current State The problem P NP is still open. Complexity theory has become a big research area. Intensive study of computability on infinite objects (e.g. real numbers, higher type functionals) is carried out (e.g. U. Berger, J. Blanck and J. Tucker in Swansea). Computability on inductive and co-inductive data types is studied (e.g. A. Setzer, U. Berger). Research on program synthesis from formal proofs (e.g. U. Berger and M. Seisenberger in Swansea). CS 275 Chapt. III.1 34/ 40

Current State Concurrent and game-theoretic models of computation are developed (e.g. Prof. Moller in Swansea). Automata theory further developed. Alternative models of computation are studied (quantum computing, genetic algorithms). CS 275 Chapt. III.1 35/ 40

Name Computability Theory The original name was recursion theory, since the mathematical concept claimed to cover exactly the computable functions is called recursive function. This name was changed to computability theory during the last 10 years. Many books still have the title recursion theory. CS 275 Chapt. III.1 36/ 40

Overview over Part III 1. Introduction. 2. The Unlimited Register Machine (URM) 3. Turing machines and. the undecidability of the halting problem. CS 275 Chapt. III.1 37/ 40

Literature [Cu80] Cutland: Computability. Cambridge University Press, 1980. Main text book. [Co90] Daniel E. Cohen: Computability and Logic. Ellis Horwood, 1990. [Su05] Thomas A. Sudkamp: Languages and machines. 3rd Edition, Addison-Wesley 2005. [BJB07] George S. Boolos, Richard C. Jeffrey, John Burgess: Computability and logic. 5th Ed. Cambridge Univ. Press, 2007 [LP97] Lewis/Papadimitriou: Elements of the Theory of Computation. Prentice Hall, 2nd Edition, 2008. [Si05] Sipser: Introduction to the Theory of Computation. South-Western College Publishing. 3rd Edition, 2012. CS 275 Chapt. III.1 38/ 40

Literature [Ma10] Martin: Introduction to Languages and the Theory of Computation. 4th Edition, McGraw Hill, 2010. Criticized in Amazon Reviews. But several editions. [HMU07] John E. Hopcroft, R. Motwani and J. Ullman: Introduction to Automata Theory, Languages, and Computation. Addison Wesley, 3rd Ed, 2007. Excellent book, mainly on automata theory context free grammars. But covers Turing machines, decidability questions as well. CS 275 Chapt. III.1 39/ 40

Literature [Ve06] Velleman: How To Prove It. Cambridge University Press, 2nd Edition, 2006. Book on basic mathematics. Useful if you need to fresh up your mathematical knowledge. [Gr99] Griffor (Ed.): Handbook of Computability Theory. North Holland, 1999. Expensive. Postgraduate level. CS 275 Chapt. III.1 40/ 40