Transcript Slide 1
The Church-Turing Thesis
Chapter 18
1
Are We Done?
FSM PDA Turing machine Is this the end of the line?
There are still problems we cannot solve: ● There is a countably infinite number of Turing machines since we can lexicographically enumerate all the strings that correspond to syntactically legal Turing machines.
● There is an uncountably infinite number of languages over any nonempty alphabet. ● So there are more languages than there are Turing machines.
2
What Can Algorithms Do?
1.
Is it possible to axiomatize all of the mathematical structures of interest in such a way that every true statement become a theorem?
Does there exist an algorithm that can examine a string and determine whether or not it is an axiom?
1.
Can we decide whether a statement is a theorem?
Does there exist an algorithm that always halts and that returns
True
when given a theorem and
False
otherwise?
3
G ödel’s Incompleteness Theorem
Kurt Gödel showed, in the proof of his Incompleteness Theorem [Gödel 1931], that the answer to question 1 is no. In particular, he showed that there exists no decidable axiomatization of Peano arithmetic that is both consistent and complete. Axiom: Proposition regarded as self-evidently true without proof Peano Arithmetic: Theory of natural numbers defined by the five Peano's axioms First order logic: Propositional logic + quantification + predicate 4
The Entscheidungsproblem
Entscheidungsproblem (German for “decision problem”) Three equivalent ways to state the problem: 1. Does there exist an algorithm to decide, given an arbitrary sentence
w
in first order logic, whether
w
is valid?
2. Given a set of axioms
A
and a sentence
w
, does there exist an algorithm to decide whether
w
is entailed by
A
?
3. Given a set of axioms,
A
, and a sentence,
w
, does there exist an algorithm to decide whether
w
can be proved from
A
?
5
The Entscheidungsproblem
To answer the question, in any of these forms, requires formalizing the definition of an algorithm: ● Turing: Turing machines.
● Church: lambda calculus. Turing proved that Turing machines and the lambda calculus are equivalent.
The Entscheidungsproblem can be solved in neither!
6
Church's Thesis (Church-Turing Thesis)
All formalisms powerful enough to describe everything we think of as a computational algorithm are equivalent. This isn’t a formal statement, so we can’t prove it. But many different computational models have been proposed and they all turn out to be equivalent.
7
The Church-Turing Thesis
Examples of equivalent formalisms: ● Modern computers (with unbounded memory) ● Lambda calculus ● Partial recursive functions ● Tag systems (FSM plus FIFO queue) ● Unrestricted grammars: a
S
a
B
● Post production systems ● Markov algorithms ● Conway’s Game of Life ● One dimensional cellular automata ● DNA-based computing ● Lindenmayer systems 8
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
for any string
w
● ● if if
w w
with input alphabet
L L
then then *,
M M
accepts rejects
w
decides
w
.
, and a language
L
* iff, A language
L
machine
M
is
decidable
that decides it. (in D) iff there is a Turing ● A TM
M w
*, ● if
w
● if
w
with input alphabet
semidecides L
L L
then then
M M
accepts
w
does not accept
w
.
M
iff for any string may reject or loop.
A language
L
is
semidecidable
machine that semidecides it. (in SD) iff there is a Turing
Defining the Universe
What is the complement of: •A n B n = { a
n
b
n
:
n
0} •{<
M
,
w
> : TM
M
halts on input string
w
}.
Defining the Universe
L
1
L
2
L
3 = {<
M
,
w
> : TM
M
= {<
M
> :
M
halts on input string halts on nothing}.
w
}.
= {<
M
a ,
M
b > :
M
a and
M
b halt on the same strings}.
For a string
w
to be in
L
● encode a machine 1 , it must: ● be syntactically well-formed.
M
and a string
w
when started on
w
.
such that
M
halts 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. (A “checker” can be built to check the correct syntax.)
A Different Definition of Complement
Our earlier definition:
L
1 = {
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:
L
1 = {<
M
,
w
> : TM
M
does not halt on input string
w
}.
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
= 3
x
+ 1 25
Does This Program Halt?
times3
(
x
: positive integer) = While
x
1 do: If
x
is even then
x
=
x
/2.
Else
x
= 3
x
+ 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
= 3
x
+ 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
= 3
x
+ 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
= 3
x
+ 1 25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16
Does This Program Halt?
times3
(
x
: positive integer) = While
x
1 do: If
x
is even then
x
=
x
/2.
Else
x
= 3
x
+ 1 25 76 38 19 58 29 88 44 22 11 34 17 52 26 13 http://www.numbertheory.org/php/collatz.html
40 20 10 5 16 8 4 2 1
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
M H
semidecides H:
M H
(<
M
,
w
>) = 1. Run
M
on
w
.
2. Accept
M H
halts iff
M
halts on
w
. Thus
M H
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
M H
decide it.
M H
would 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
M
H that computes the function
halts
,
Trouble
exists:
C #
is a Turing machine that writes
x
,
x
on the tape given
x
(i.e., input) on the tape What is
Trouble
(<
Trouble
>)? What is
halts
(<
Trouble
,
Trouble
>)? ● If
halts
reports that
Trouble
(<
Trouble
>) halts,
Trouble
● But if
halts
reports that
Trouble
(<
Trouble
loops.
>) does not halt, then
Trouble
halts.
Viewing the Halting Problem as Diagonalization
● ● Lexicographically enumerate Turing machines.
Let 1 mean halting, blank mean non halting.
i
1 1
i
2
i
3
…
<
Trouble
>
machine
1
machine
2
machine
3
… Trouble
… … 1 1 1 1 1 1 1 1 But
Trouble
behaves as:
Trouble
1 1 … 1 1 Or maybe
halts
said that
trouble
(<
trouble
>) would halt. But then
trouble
would loop.
If H were in D
H = {<
M
,
w
>: TM
M
halts on input string
w
}
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
M L
semidecides it. that If H were also in D, then there would exist a Turing machine
O
that decides it.
If H were in D
To decide whether
w
is in
L
(
M L
):
M'
(
w
: string) = 1. Run 2. If
O O
on <
M L
,
w
>. accepts (i.e.,
M L
will halt), then: 2.1. Run
M L
on
w
.
2.2. If it accepts, accept. Else reject.
3. Else reject.
So, if H were in D, all SD languages would be.
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.