Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Introduction to Computability Theory Lecture14: The Halting Problem Prof. Amos Israeli.

Similar presentations


Presentation on theme: "1 Introduction to Computability Theory Lecture14: The Halting Problem Prof. Amos Israeli."— Presentation transcript:

1 1 Introduction to Computability Theory Lecture14: The Halting Problem Prof. Amos Israeli

2 In this lecture we present an undecidable language. The language that we prove to be undecidable is a very natural language namely the language consisting of pairs of the form where M is a TM accepting string w : The Halting Problem 2

3 Since this language requires to decide whether the computation of TM M halts on input w, it is often called The Halting Problem. Theorem The halting problem is Turing Recognizable. The Halting Problem 3

4 Consider a TM U that gets a pair as input and simulates the run of M on input w. If M accepts or rejects so does U. Otherwise, U loops. Note: U recognizes A TM,since it accepts any pair, that is: any pair in which M accepts input w. Proof 4

5 On the previous lecture, we detailed the simulation of a DFA by a TM. Simulating one TM by another, using the encoding of the first TM is a very similar process. In the next slide we review the main characteristics of TM N simulating TM M, using M ’s encoding. Simulating an Input TM 5

6 TM N works as follows: 1.Mark M ’s initial state and w ’s initial symbol as the “current state” and “current head location”. 2.Look for M ’s next transition on the description of its transition function. 3.Execute M ’s transition. Simulating an Input TM 6

7 4.Move M ’s “current state” and “current head location” to their new places. 5.If M ’s new state is a deciding state decide according to the state, otherwise – repeat stages 2-5. Simulating an Input TM 7

8 So far we proved the existence of a language which is not Turing recognizable. Now we continue our quest to prove: Theorem The language is undecidable. The Language ___ Is Undecidable 8

9 Before we start the proof let us consider two ancient questions: Question1: Can god create a boulder so heavy such that he (god) cannot lift? The Language ___ Is Undecidable 9

10 Question2: In the small town of L.J. there is a single barber: Over the barber’s chair there is a note saying: “ I will shave you on one condition: Thaw shall never shave thyself!!!” Who Shaves the Barber? The Language ___ Is Undecidable 10

11 Assume, by way of contradiction, that is decidable and let H be a TM deciding. That is Define now another TM, D, that uses H as a subroutine as follows: Proof 11

12 Define now another TM new D that uses H as a subroutine as follows: D= “On input where M is a TM: 1. Run H on input. 2. Output the opposite of H ’s output namely: If H accepts reject, otherwise accept.“ Proof 12

13 Note: What we do here is taking advantage of the two facts: Fact1: TM M should be able to compute with any string as input. Fact2: The encoding of M,, is a string. Proof 13

14 Running a machine on its encoding is analogous to using a compiler for the computer language Pascal, to compile itself (the compiler is written in Pascal). As we recall from the two questions self- reference is sometimes means trouble (god forbid…) Proof 14

15 What we got now is: Consider now the result of running D with input. What we get is: Proof 15

16 So if D accepts, it rejects and if it rejects it accepts. Double Trouble. And it all caused by our assumption that TM H exists!!! Proof 16

17 1.Define. 2.Assume that id decidable and let H be a TM deciding it. 3.Use H to build TM D that gets a string and behaves exactly opposite to H ’s behavior, namely: Proof Review 17

18 4.Run TM D on its encoding and conclude: Contradiction. Proof Review 18

19 The following table describes the behavior of each machine on some machine encodings: So Where is the Diagonalization? 19

20 This table describes the behavior of TM H. Note: TM H rejects where loops. So Where is the Diagonalization? 20

21 Now TM D is added to the table… Proof Review 21

22 So far we proved the existence of a language which is not Turing recognizable. Now we will prove a theorem that will enable us to identify a specific language, namely, as a language that is not Turing recognizable. __ Is Not Turing Reecognizable 22

23 (Reminder) A Language L is Turing recognizable if there exists a TM recognizing L. That is, a TM that accepts any input. A Language L is co-Turing recognizable if the complement of L,, is Turing recognizable. __ Is Not Turing Reecognizable 23

24 Theorem A language L Is decidable, if and only if it is Turing recognizable and co-Turing recognizable. Proof -> If L is decidable so is its complement,. Any decidable language is Turing recognizable. __ Is Not Turing Reecognizable 24

25 Proof -> If L is decidable so is its complement,. A TM to decide, is obtained by running a TM deciding L and deciding the opposite. Any decidable language is Turing recognizable, hence is Turing recognizable and L is co- Turing recognizable. __ Is Not Turing Reecognizable 25

26 Proof <- If L and are both Turing recognizable, there exist two TM-s,, and, that recognize and, respectively. A TM M to decide L can be obtained by running both, and in parallel and halt when one of them accepts. __ Is Not Turing Recognizable 26

27 Corollary The language is not Turing recognizable. Proof We already know that is Turing recognizable. Assume is Turing recognizable. Then, is co-Turing recognizable. By the previous theorem is decidable, a contradiction. __ Is Not Turing Recognizable 27

28 This is the diagram we had after we studied CFL-s: CFL-s Ex: RL-s Ex: Discussion 28 Non CFL-s Ex: ???

29 Now, we can add some more details: CFL-s Ex: RL-s Ex: Discussion 29 Decidable Ex: Turing recognizable Ex: Non Turing recognizable Ex:


Download ppt "1 Introduction to Computability Theory Lecture14: The Halting Problem Prof. Amos Israeli."

Similar presentations


Ads by Google