0% found this document useful (0 votes)
510 views4 pages

Halting Problem: Proof of Undecidability

The document discusses the halting problem and proves it is undecidable. It first defines the halting problem as determining if an arbitrary Turing machine will halt on a given input string. It then assumes the halting problem is decidable by a Turing machine T. However, it constructs a new Turing machine Tc that leads to a contradiction - whether Tc halts or not on its own description depends on how T would behave, but T cannot solve this case. Therefore, the initial assumption that the halting problem is decidable must be false.

Uploaded by

mansha99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
510 views4 pages

Halting Problem: Proof of Undecidability

The document discusses the halting problem and proves it is undecidable. It first defines the halting problem as determining if an arbitrary Turing machine will halt on a given input string. It then assumes the halting problem is decidable by a Turing machine T. However, it constructs a new Turing machine Tc that leads to a contradiction - whether Tc halts or not on its own description depends on how T would behave, but T cannot solve this case. Therefore, the initial assumption that the halting problem is decidable must be false.

Uploaded by

mansha99
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Given an arbitrary Turing machine M over alphabet = { a , b } , and an arbitrary

string w over , does M halt when it is given w as an input ?


Theorem: The halting problem is undecidable.
Proof by Contradiction
Suppose that the halting problem is decidable. Then there is a Turing machine T
that solves the halting problem. That is, given a description of a Turing machine
M (over the alphabet ) and a string w, T writes "yes" if M halts on w and "no" if
M does not halt on w, and then T halts.

We are now going to construct the following new Turing machine Tc.
First we construct a Turing machine Tm by modifying T so that if T accepts a string
and halts, then Tm goes into an infinite loop (Tm halts if the original T rejects a
string and halts).

Next using Tm we are going to construct another Turing machine Tc as follows:


Tc takes as input a description of a Turing machine M, denoted by d(M), copies it
to obtain the string d(M)*d(M), where * is a symbol that separates the two copies
of d(M) and then supplies d(M)*d(M) to the Turing machine Tm .

Let us now see what Tc does when a string describing Tc itself is given to it.
When Tc gets the input d(Tc) , it makes a copy, constructs the string d(Tc)*d(Tc)
and gives it to the modified T. Thus the modified T is given a description of Turing
machine Tc and the string d(Tc).

The way T was modified the modified T is going to go into an infinite loop if T c
halts on d(Tc) and halts if Tc does not halt on d(Tc).
Thus Tc goes into an infinite loop if Tc halts on d(Tc) and it halts if Tc does not halt
on d(Tc). This is a contradiction. This contradiction has been deduced from our
assumption that there is a Turing machine that solves the halting problem. Hence
that assumption must be wrong. Hence there is no Turing machine that solves the
halting problem.

You might also like