290 likes | 296 Views
Explore the undecidable nature of the Halting Problem through Turing machines and self-referential logic. Delve into proofs and thought experiments questioning decidable languages.
E N D
Introduction to Computability Theory Lecture14: The Halting Problem Prof. Amos Israeli
The Halting Problem 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 Mis a TM accepting string w:
The Halting Problem 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.
Proof Consider a TM U that gets a pair as input and simulates the run ofM on input w. If M accepts or rejects so does U. Otherwise, U loops. Note:U recognizes ATM ,since it accepts any pair , that is: any pair in which M accepts input w.
Simulating an Input TM 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 <M>.
Simulating an Input TM TM N works as follows: • Mark M’s initial state and w’s initial symbol as the “current state” and “current head location”. • Look for M’s next transition on the description of its transition function. • Execute M’s transition.
Simulating an Input TM • Move M’s “current state” and “current head location” to their new places. • If M’s new state is a deciding state decide according to the state, otherwise – repeat stages 2-5.
The Language ___ Is Undecidable So far we proved the existence of a language which is not Turing recognizable. Now we continue our quest to prove: Theorem The languageis undecidable.
The Language ___ Is Undecidable 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 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?
Proof 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 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 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 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 What we got now is: Consider now the result of running D with input . What we get is:
Proof So if Daccepts, it rejects and if it rejects it accepts. Double Trouble. And it all caused by our assumption that TM H exists!!!
Proof Review • Define . • Assume that id decidable and let H be a TM deciding it. • Use H to build TM D that gets a string and behaves exactly opposite to H’s behavior, namely:
Proof Review • Run TM D on its encoding and conclude: Contradiction.
So Where is the Diagonalization? The following table describes the behavior of each machine on some machine encodings:
So Where is the Diagonalization? This table describes the behavior of TM H. Note: TMHrejects where loops.
Proof Review Now TM D is added to the table…
__ Is Not Turing Reecognizable 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 (Reminder) A Language Lis Turing recognizable if there exists a TM recognizing L. That is, a TM that accepts any input . A Language Lis co-Turing recognizable if the complement of L, , is Turing recognizable.
__ Is Not Turing Reecognizable 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 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 Recognizable Proof <- If L and are both Turing recognizable, there exist two TM-s, , and , that recognize and , respectively. A TM Mto decideL can be obtained by running both , and in parallel and halt when one of them accepts.
__ Is Not Turing Recognizable 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.
Discussion This is the diagram we had after we studied CFL-s: ??? RL-s Ex: CFL-s Ex: Non CFL-s Ex:
Discussion Non Turing recognizable Ex: Now, we can add some more details: Turing recognizable Ex: RL-s Ex: CFL-s Ex: Decidable Ex: