L = { <M,t> : t ∈ L(M) and s ∉ L(M), t,s ∈ {a,b}*, where t is the string after s in a lexicographic ordering of {a,b}*}.

profileRony
Chapter19TheUnsolvabilityoftheHaltingProblemFile.ppt

The Unsolvability of the Halting Problem

Chapter 19

Languages and Machines

SD

D


Context-Free

Languages


Regular

Languages

reg exps

FSMs

cfgs

PDAs

unrestricted grammars

Turing Machines

D and SD

● A TM M with input alphabet  decides a language L  * iff,

for any string w  *,

● if w  L then M accepts w, and

● if w  L then M rejects w.

A language L is decidable (in D) iff there is a Turing

machine M that decides it.

● A TM M with input alphabet  semidecides L iff for any string

w  *,

● if w  L then M accepts w

● if w  L then M does not accept w. M may reject or loop.

A language L is semidecidable (in SD) iff there is a Turing

machine that semidecides it.

Defining the Universe

What is the complement of:

  • AnBn = {anbn : n  0}
  • {<M, w> : TM M halts on input string w}.

Defining the Universe

L1 = {<M, w> : TM M halts on input string w}.

L2 = {<M> : M halts on nothing}.

L3 = {<Ma, Mb> : Ma and Mb halt on the same strings}.

For a string w to be in L1, it must:

● be syntactically well-formed.

● encode a machine M and a string w such that M halts

when started on w.

Define the universe from which we are drawing strings to contain only those strings that meet the syntactic requirements of the language definition.

This convention has no impact on the decidability of any of these languages since the set of syntactically valid strings is in D.

Our earlier definition:

L1 = {x: x is not a syntactically well formed <M, w> pair}

{<M, w> : TM M does not halt on input string w}.

We will use a different definition:

Define the complement of any language L whose member strings include at least one Turing machine description to be with respect to a universe of strings that are of the same syntactic form as L.

Now we have:

L1 = {<M, w> : TM M does not halt on input string w}.

A Different Definition of Complement

The Language H

H = {<M, w> : TM M halts on input string w}

Theorem: The language:

H = {<M, w> : TM M halts on input string w}

● is semidecidable, but

● is not decidable.

Does This Program Halt?

times3(x: positive integer) =

While x  1 do:

If x is even then x = x/2.

Else x = 3x + 1

25

Does This Program Halt?

times3(x: positive integer) =

While x  1 do:

If x is even then x = x/2.

Else x = 3x + 1

25

76

38

19

58

Does This Program Halt?

times3(x: positive integer) =

While x  1 do:

If x is even then x = x/2.

Else x = 3x + 1

25

76

38

19

58

29

88

44

22

11

Does This Program Halt?

times3(x: positive integer) =

While x  1 do:

If x is even then x = x/2.

Else x = 3x + 1

25

76

38

19

58

29

88

44

22

11

34

17

52

26

13

Does This Program Halt?

times3(x: positive integer) =

While x  1 do:

If x is even then x = x/2.

Else x = 3x + 1

25

76

38

19

58

40

20

10

5

16

29

88

44

22

11

34

17

52

26

13

Does This Program Halt?

times3(x: positive integer) =

While x  1 do:

If x is even then x = x/2.

Else x = 3x + 1

25

76

38

19

58

40

20

10

5

16

29

88

44

22

11

34

17

52

26

13

8

4

2

1

http://www.numbertheory.org/php/collatz.html

H is Semidecidable

Lemma: The language:

H = {<M, w> : TM M halts on input string w}

is semidecidable.

Proof:

H is Semidecidable

Lemma: The language:

H = {<M>, w : TM M halts on input string w}

is semidecidable.

Proof: The TM MH semidecides H:

MH(<M, w>) =

1. Run M on w.

MH halts iff M halts on w. Thus MH semidecides H.

The Unsolvability of the Halting Problem

Lemma: The language:

H = {<M, w> : TM M halts on input string w}

is not decidable.

Proof: If H were decidable, then some TM MH would decide it. MH would implement the specification:

halts(<M: string, w: string>) =

If <M> is a Turing machine description

and M halts on input w

then accept.

Else reject.

Trouble

Trouble(x: string) =

if halts(x, x) then loop forever, else halt.

If there exists an MH that computes the function halts, Trouble exists:



What is Trouble(<Trouble>)?

What is halts(<Trouble, Trouble>)?

● If halts reports that Trouble(<Trouble>) halts, Trouble loops.

● But if halts reports that Trouble(<Trouble>) does not halt, then

Trouble halts.

● Lexicographically enumerate Turing machines.

● Let 1 mean halting, blank mean non halting.

But Trouble behaves as:

Or maybe halts said that trouble(<trouble>) would halt. But then trouble would loop.

Viewing the Halting Problem as Diagonalization

i1 i2 i3 … <Trouble> …
machine1 1
machine2 1
machine3 1
… 1
Trouble 1 1
… 1 1 1
… 1
Trouble 1 1 1

If H were in D

Theorem: If H were in D then every SD language would be in D.

Proof: Let L be any SD language. There exists a TM ML that

semidecides it.

H = {<M>, w : TM M halts on input string w}

If H were also in D, then there would exist an O that decides it.

If H were in D

M'(w: string) =

1. Run O on <ML, w>.

2. If O accepts (i.e., ML will halt), then:

2.1. Run ML on w.

2.2. If it accepts, accept. Else reject.

3. Else reject.

So, if H were in D, all SD languages would be.

To decide whether w is in L(ML):

Back to the Entscheidungsproblem

Theorem: The Entscheidungsproblem is unsolvable.

Proof: (Due to Turing)

1. If we could solve the problem of determining whether a given Turing

machine ever prints the symbol 0, then we could solve the problem of

determining whether a given Turing machine halts.

2. But we can’t solve the problem of determining whether a given Turing

machine halts, so neither can we solve the problem of determining

whether it ever prints 0.

3. Given a Turing machine M, we can construct a logical formula F that is

true iff M ever prints the symbol 0.

4. If there were a solution to the Entscheidungsproblem, then we would

be able to determine the truth of any logical sentence, including F and

thus be able to decide whether M ever prints the symbol 0.

5. But we know that there is no procedure for determining whether M

ever prints 0.

6. So there is no solution to the Entscheidungsproblem.

IN SD OUT

Semideciding TM H

D

Deciding TM AnBnCn Diagonalize

Context-Free

CF grammar AnBn Pumping

PDA Closure

Closure

Regular

Regular Expression a*b* Pumping

FSM Closure

Language Summary