The Halting Problem is Undecidable



Similar documents
CSE 135: Introduction to Theory of Computation Decidability and Recognizability

(IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems.

Introduction to Automata Theory. Reading: Chapter 1

24 Uses of Turing Machines

Chapter 7 Uncomputability

Computational Models Lecture 8, Spring 2009

CS 3719 (Theory of Computation and Algorithms) Lecture 4

Automata and Computability. Solutions to Exercises

Computability Theory

Overview of E0222: Automata and Computability

6.080/6.089 GITCS Feb 12, Lecture 3

Honors Class (Foundations of) Informatics. Tom Verhoeff. Department of Mathematics & Computer Science Software Engineering & Technology

Notes on Complexity Theory Last updated: August, Lecture 1

1 Definition of a Turing machine

Lecture 2: Universality

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

3515ICT Theory of Computation Turing Machines

Turing Machines: An Introduction

Finite Automata. Reading: Chapter 2

Properties of Stabilizing Computations

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Regular Expressions and Automata using Haskell

How To Understand The Theory Of Computer Science

Pushdown Automata. place the input head on the leftmost input symbol. while symbol read = b and pile contains discs advance head remove disc from pile

Reading 13 : Finite State Automata and Regular Expressions

Compiler Construction

Theory of Computation Chapter 2: Turing Machines

CS154. Turing Machines. Turing Machine. Turing Machines versus DFAs FINITE STATE CONTROL AI N P U T INFINITE TAPE. read write move.

CAs and Turing Machines. The Basis for Universal Computation

NP-Completeness and Cook s Theorem

CHAPTER 7 GENERAL PROOF SYSTEMS

CS 301 Course Information

Regular Languages and Finite State Machines

Composability of Infinite-State Activity Automata*

How To Compare A Markov Algorithm To A Turing Machine

Introduction to Turing Machines

Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi

CS5236 Advanced Automata Theory

The Classes P and NP

Universality in the theory of algorithms and computer science

Regular Languages and Finite Automata

Implementation of Recursively Enumerable Languages using Universal Turing Machine in JFLAP

6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, Class 4 Nancy Lynch

Automata and Formal Languages

Course Manual Automata & Complexity 2015

Algorithmic Software Verification

CSC4510 AUTOMATA 2.1 Finite Automata: Examples and D efinitions Definitions

THE TURING DEGREES AND THEIR LACK OF LINEAR ORDER

Informatique Fondamentale IMA S8

Computability Classes for Enforcement Mechanisms*

Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, School of Informatics University of Edinburgh als@inf.ed.ac.

On String Languages Generated by Spiking Neural P Systems

On strong fairness in UNITY

C H A P T E R Regular Expressions regular expression

Universal Turing Machine: A Model for all Computational Problems

Simulation-Based Security with Inexhaustible Interactive Turing Machines

Automata on Infinite Words and Trees

Introduction to Theory of Computation

Increasing Interaction and Support in the Formal Languages and Automata Theory Course

CS 341: Foundations of Computer Science II elearning Section Syllabus, Spring 2015

Full and Complete Binary Trees

WRITING PROOFS. Christopher Heil Georgia Institute of Technology

Complexity of Algorithms

Enforcing Security Policies. Rahul Gera

Two-dimensional Languages

Model 2.4 Faculty member + student

Omega Automata: Minimization and Learning 1

Two Way F finite Automata and Three Ways to Solve Them

GENERIC COMPUTABILITY, TURING DEGREES, AND ASYMPTOTIC DENSITY

I. GROUPS: BASIC DEFINITIONS AND EXAMPLES

Cardinality. The set of all finite strings over the alphabet of lowercase letters is countable. The set of real numbers R is an uncountable set.

MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.

Diagonalization. Ahto Buldas. Lecture 3 of Complexity Theory October 8, Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.

Finite Automata and Formal Languages

Finite Automata. Reading: Chapter 2

Models of Sequential Computation

4.6 The Primitive Recursive Functions

How To Understand The Relation Between Simplicity And Probability In Computer Science

Turing Machines, Part I

Proseminar on Semantic Theory Fall 2013 Ling 720. Problem Set on the Formal Preliminaries : Answers and Notes

Formal Grammars and Languages

ω-automata Automata that accept (or reject) words of infinite length. Languages of infinite words appear:

The Optimum One-Pass Strategy for Juliet

THE SEARCH FOR NATURAL DEFINABILITY IN THE TURING DEGREES

T Reactive Systems: Introduction and Finite State Automata

The Prime Numbers. Definition. A prime number is a positive integer with exactly two positive divisors.

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012

Notes on Complexity Theory Last updated: August, Lecture 1

An algorithmic classification of open surfaces

Introduction to NP-Completeness Written and copyright c by Jie Wang 1

Finite Automata and Regular Languages

Fundamentele Informatica II

CMPSCI 250: Introduction to Computation. Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013

OHJ-2306 Introduction to Theoretical Computer Science, Fall

Pushdown Automata. International PhD School in Formal Languages and Applications Rovira i Virgili University Tarragona, Spain

Scanner. tokens scanner parser IR. source code. errors

Deterministic Finite Automata

Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products

FINITE STATE AND TURING MACHINES

03 - Lexical Analysis

Transcription:

185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine }. Counter-assumption: is Turing-recognizable Then by Theorem B, ERR = is Turing-recognizable. U is known to be Turing-recognizable (Th. E) and now also is Turing-recognizable. Hence, by Theorem 4.22, U is decidable. This is a contradiction with Theorem F and the counter-assumption does not hold. I.e., is not Turing-recognizable. 186 The Halting Problem is Undecidable Analogously to the acceptance problem of DFAs, we can pose the halting problem of Turing machines: Does the given Turing machine M halt on input w? This is an undecidable problem. If it could be decided, we could easily decide also the universal language Theorem 5.1 HALT TM = { M, w M is a TM and halts on input w } is Turing-recognizable, but not decidable. Proof. HALT TM is Turing-recognizable: The universal Turing machine M U of Theorem E is easy to convert into a TM that simulates the computation of M on input w and accepts if and only if the computation being simulated halts. 1

187 HALT TM is not decidable: counter-assumption: HALT TM = L(M HALT ) for the total Turing machine M HALT. Now we can compose a decider for the language U by combining machines M U and M HALT as shown in the next figure. The existence of such a TM is a contradiction with Theorem F. Hence, the counter-assumption cannot hold and HALT TM is not decidable. Corollary H = { M, w M is a TM and does not halt on input w } is not Turing-recognizable. Proof. Like in corollary G. 188 M, w M U M HALT A total TM for the universal language U 2

189 Chomsky hierarchy A formal language L can be recognized with a Turing machine if and only if it can be generated by an unrestricted grammar Hence, the languages generated by unrestricted grammars are Turing-recognizable languages. They constitute type 0 languages of Chomsky hierarchy Chomsky s type 1 languages are the context-sensitive ones. It can be shown that they are all decidable On the other hand, there exists decidable languages, which cannot be generated by context-sensitive grammars 190 D,,, D,,, 0: Turing-recognizable languages Decidable languages U, HALT TM, 1: Context-sensitive languages 2: Context-free languages 3: Regular languages Finite lang. A DFA, E DFA, e.g. { a k b k c k k 0 } e.g. {a k b k k 0 } e.g. { a k k 0 } 3

191 Halting Problem in Programming Language The correspondence between Turing machines and programming languages: All TMs ~ programming language One TM ~ program The code of a TM ~ representation of a program in machine code Universal TM ~ interpreter for machine language The interpretation of the undecidability of the halting problem in programming languages: ``There does not exist a Java method, which could decide whether any given Java method M halts on input w''. 192 Let us assume that there exists a total Java method h that returns true if the method represented by string m halts on input w and false otherwise: boolean h(string m, String w) Now we can program the method hhat boolean hhat( String m ) { if (h(m,m)) while (true) ;} Let H be the string representation of hhat. hhat works as follows: hhat(h) halts h(h,h) = false hhat(h) does not halt 4

193 5. Reducibility The proof of unsolvability of the halting problem is an example of a reduction: a way of converting problem A to problem B in such a way that a solution to problem B can be used to solve problem A If the halting problem were decidable, then the universal language would also be decidable Reducibility says nothing about solving either of the problems alone; they just have this connection We know from other sources that the universal language is not decidable When problem A is reducible to problem B, solving A cannot be harder than solving B because a solution to B gives one to A If an unsolvable problem is reducible to another problem, the latter also must be unsolvable 194 Non-emptiness Testing for TMs (Observe that the book deals with E TM.) The following decision problem is undecidable: ``Does the given Turing machine accept any inputs?' NE TM = { M M is a Turing machine and L(M) } Theorem (5.2) NE TM is Turing-recognizable, but not decidable Proof. The fact that NE TM is Turing-recognizable will be shown in the exercises. Let us assume that NE TM has a decider M T NE Using it we can construct a total Turing machine for the language U Let M be an arbitrary Turing machine, whose operation on input w is under scrutiny 5

195 Let M w be a Turing machine that replaces its actual input with the string w = a 1 a 2 a k and then works as M Operation of M w does not depend in any way about the actual input. The TM either accepts or rejects all inputs: L( M * 0,1, ) 0 w if if w L( M ) w L( M ) 196 */*, L */A, R */a 2, R */, L */a k, R A/a 1, L M The Turing machine M w 6

197 Let M ENC be a TM, which Inputs the concatenation of the code M for a Turing machine M and a binary string w, M, w, and Leaves to the tape the code M w of the TM M w M, w M w M ENC By combining M ENC and the decider M T NE for the language NE TM we are now able to construct the following Turing machine M U T 198 M, w M w M T NE M ENC A decider M UT for the universal language U 7

199 M UT is total whenever M T NE is, and L(M UT ) = U because M, w L(M UT ) M w L(M T NE) = NE TM L(M w ) w L(M) M, w U However, by Theorem F U is not decidable, and the existence of the TM M UT is a contradiction Hence, the language NE TM cannot have a total recognizer M T NE and we have, thus, proved that the language NE TM is not decidable. 200 TMs Recognizing Regular Languages Similarly, we can show that recognizing those Turing machines that accept a regular language is undecidable by reducing the decidability of the universal language into this problem The decision problem is: ' Does the given Turing machine accept a regular language?'' REG TM = { M M is a TM and L(M) is a regular language } Theorem 5.3 REG TM is undecidable. Proof. Let us assume that REG TM has a decider M T REG 8

201 Using M T REG we could construct a decider for the universal language U Let M be an arbitrary Turing machine, whose operation on input w we are interested in The language corresponding to balanced pairs of parenthesis { 0 n 1 n n 0 } is not regular, but easy to decide using a TM Let M parenth be a decider for the language Now, let M ENC be a TM, which on input M, w composes an encoding for a TM M w, which on input x First works as M parenth on input x. If M parenth rejects x, M w operates as M on input w. Otherwise M w accepts x 202 x M parenth start w M Deciding a regular language: the TM M w 9

203 Thus, M w either accepts the regular language { 0, 1 }* or nonregular { 0 n 1 n n 0 } Accepting/rejecting the string w on M reduces to the question of the regularity of the language of the TM M w w 0,1 L( M ) * n n 0 1 n 0 if w L( M ) if w L( M ) Let M ENC be a TM, which inputs the concatenation of the code M for a Turing machine M and a binary string w, M, w, and Leaves to the tape the code M w of the TM M w Now by combining M ENC and M T REG would yield the following Turing machine M U T 204 M, w M w M T REG M ENC A decider M UT for the universal language U 10

205 M UT is total whenever M T REG is and L(M UT ) = U, because M, w L(M UT ) M w L(M T REG) = REG TM L(M w ) is a regular language w L(M) M, w U By Theorem F, U is not decidable, and the existence of the TM M UT is a contradiction Hence, language REG TM cannot have a decider M T REG Thus, we have shown that the language REG TM is not decidable 206 Rice s Theorem Any property that only depends on the language recognized by a TM, not on its syntactic details, is called a semantic property of the Turing machine E.g. ''M accept the empty string'', ''M accepts some string'' (NE), ''M accept infinitely many strings'', ' The language of M is regular (REG) etc. If two Turing machines M 1 and M 2 have L(M 1 ) = L(M 2 ), then they have exactly the same semantic properties 11

207 More abstractly: a semantic property S is any collection of Turingrecognizable languages over the alphabet { 0, 1 } Turing machine M has property S if L(M) S. Trivial properties are S = and S = TR Property S is solvable, if language codes(s) = { M L(M) S } is decidable. Rice s theorem All non-trivial semantic properties of Turing machines are unsolvable 208 Computation Histories The computation history for a Turing machine on an input is simply the sequence of configurations that the machine goes through as it processes the input. An accepting computation history for M on w is a sequence of configurations C 1, C 2,, C l, where C 1 is the start configuration q 0 w, C l an accepting configuration of M, and each C i legally follows from C i 1 according to the rules of M Similarly one can define a rejecting computation history Computation histories are finite sequences if M doesn t halt on w, no accepting or rejecting computation history exists for M on w 12

209 Linear Bounded Automata A linear bounded automaton (LBA) is a Turing machine that cannot use extra working space It can only use the space taken up by the input Because the tape alphabet can, in any case, be larger than the input alphabet, it allows the available memory to be increased up to a constant factor Deciders for problems concerning context-free languages If a LBA has q states g symbols in its tape alphabet, and an input of length n, then the number of its possible configurations is q n g n 210 Theorem 5.9 The acceptance problem for linear bounded automata A LBA = { M, w M is an LBA that accepts string w } is decidable. Proof. As M computes on w, it goes from configuration to configuration. If it ever repeats a configuration, it will go on to repeat this configuration over and over again and thus be in a loop. Because an LBA has only q n g n distinct configurations, if the computation of M has not halted in so many steps, it must be in a loop. Thus, to decide A LBA it is enough to simulate M on w for q n g n steps or until it halts. 13

211 Theorem 5.10 The emptiness problem for linear bounded automata E LBA = { M M is an LBA and L(M) = } is undecidable. Proof. Reduction from the universal language (acceptance problem for general TMs). Counter-assumption: E LBA is decidable; i.e., there exists a decider M ET for E LBA. Let M be an arbitrary Turing machine, whose operation on input w is under scrutiny. Let us compose an LBA B that recognizes all accepting computation histories for M on w. 212 Now we can reduce the acceptance problem for general Turing machines to the emptiness testing for LBAs: L( B) L( B) if if w L( M ) w L( M ) The LBA B must accept input string x if it is an accepting computation history for M on w. Let the input be presented as x = C 1 #C 2 ##C l. 14

213 B checks that x satisfies the conditions of an accepting computation history: C 1 = q 0 w, C l is an accepting configuration for M; i.e. accept is the state in C l, and C i-1 M C i : configurations C i-1 and C i are identical except for the position under and adjacent to the head in C i-1, and the changes correspond to the transition function of M. Given M and w it is possible to construct LBA B mechanically. 214 By combining machines B and M ET as shown in the following figure, we obtain a decider for the acceptance problem of general Turing machines (universal language). M, w L(M UT ) B L(M ET ) L(B) w L(M) M, w U This is a contradiction, and the language E LBA cannot be decidable. 15

215 M, w B M T E M ENC A decider M UT for the universal language U 216 5.3 Mapping Reducibility Let M =(Q,,,, q 0, accept, reject) be an arbitrary standard Turing machine Let us define the partial function f M : * * computed by the TM as follows: f M u, ( w) undefined if q 0 * w u q, M q {accept, reject} otherwise Thus, the TM M maps a string w * to the string u, which is the contents of the tape, if the computation halts on w If it does not halt, the value of the function is not defined in w 16

217 Definition 5.20 Partial function f is computable, if it can be computed with a total Turing machine. I.e. if its value f(w) is defined for every w Let us formulate the idea that problem A is at most as difficult as'' problem B as follows Let A *, B * be two formal languages A is mapping reducible to B, written A m B, if there is a computable function f: * * s.t. w A f(w) B w * The function f is called the reduction of A to B 218 Mapping an instance w of A computably into an instance f(w) of B and ' does w have property A?'' ' does f(w) have property B?'' * f A f B * 17