Transcript slides
Lecture 23:
Computability
CS200: Computer Science
University of Virginia
Computer Science
David Evans
http://www.cs.virginia.edu/~evans
Menu
• Review: Gödel’s Theorem, Proof in
Axiomatic Systems
• Are there some problems that it is
impossible to write a program to solve?
18 March 2002
CS 200 Spring 2002
2
Review
• Axiomatic System
– Set of axioms
– Set of inference rules
• Example: MIU-System from GEB
– Axioms: MI
– Inference rules: 4 rules for making new strings
• An axiomatic system is a formal system
where the string we can generate are
meant to represent “true theorems”
18 March 2002
CS 200 Spring 2002
3
Proof
• A proof of S in an axiomatic system is a
sequence of strings, T0, T1, …, Tn where:
– The first string is the axioms
– For all i from 1 to n, Tn is the result of applying
one of the inference rules to Tn-1
– Tn is S
• What is the proof-checking problem?
18 March 2002
CS 200 Spring 2002
4
Proof Checking Problem
• Input: an axiomatic system (a set of
axioms and inference rules), a statement
S, and a proof P of S
• Output:
true if P is a valid proof of S
false otherwise
How much work is the proof-checking problem?
n = length of the proof (number of steps)
Checking a proof is O(n)
18 March 2002
CS 200 Spring 2002
5
Finite-Length Proof Finding Problem
• Input: an axiomatic system (a set of
axioms and inference rules), a statement
S, n (the maximum number of proof steps)
• Output:
A valid proof of S with no more then n steps if
there is one. If there is no proof, unprovable.
How much work? At worst, we can try all possible proofs:
Finite-Length ProofFinding Problem is
NP-Complete.
O(rn) and (n)
18 March 2002
r inference rules
0 - n steps
~ rn possible proofs
Checking each proof is O(max-steps)
CS 200 Spring 2002
6
Proof Finding Problem
• Input: an axiomatic system, a statement S
• Output:
A valid proof of S if S is true. If there is no
proof, false.
How much work?
It is impossible!
Gödel’s theorem says it cannot be done.
18 March 2002
CS 200 Spring 2002
7
Quiz Answers
18 March 2002
CS 200 Spring 2002
8
What is Computer Science?
• “Correct” answers:
– “The most wonderful thing in the world!”
• Okay answers:
– “a liberal art (the only legitimate one) that
incorporates how into figuring things out. It is
the only class I have that can hurt my head.”
– “Study of systems and their actions through
the use of language systems.”
18 March 2002
CS 200 Spring 2002
9
What is Computer Science?
• More Okay answers:
– “A combination of logic, math, and other
disciplines to create systems.”
– “Study of language, math, logic, and all kinds of
good stuff… (music, cognition, etc.)”
– Neither “about” computers nor a science, more
of a liberal art.
– “Complicated, but nothing to with computers or
science.”
• Actually, it has a lot to do with computers. Like
chemistry has a lot to do with beekers.
18 March 2002
CS 200 Spring 2002
10
What is Computer Science?
• My answer would be:
“Study of ways to describe procedures and
reason about the processes they produce?”
• My alternate answer:
“Playing with procedures.”
18 March 2002
CS 200 Spring 2002
11
Reading GEB?
– Don’t remember: 1 (?)
– Through Ch 5 or less: 4
– All of Part I: 1
– All of Part I and some in Part II: 2
• Reading GEB is probably not necessary to
get a good grade in this class, but I really
hope you will read it and enjoy reading it!
• Ch 13 is the last assigned reading in it for
this class
18 March 2002
CS 200 Spring 2002
12
Exam 2
─ Similar to Exam 1
─ Like Exam 1, but allow DrScheme
─ In class, open notes
─ In class, closed notes
─ There shouldn’t be another Exam
225
111222
5555
1112
Exam 2 will involve:
- Questions about axiomatic systems, complexity and computability
(some practice questions on Friday)
- Questions about evaluation models (environments, evaluation rules)
- Writing a program that uses everything up through and including PS7
18 March 2002
CS 200 Spring 2002
13
What does it mean for an axiomatic
system to be complete and consistent?
Derives all true
statements, and no false
statements starting from a
finite number of axioms
and following mechanical
inference rules.
18 March 2002
CS 200 Spring 2002
14
What does it mean for an axiomatic
system to be complete and consistent?
It means the axiomatic system is
weak.
Its is so weak, it cannot express
“This statement has no proof.”
18 March 2002
CS 200 Spring 2002
15
Computability
18 March 2002
CS 200 Spring 2002
16
Computability
• Is there a procedure that solves a problem?
• Decidable (computable) problems:
– There is a procedure that solves the problem
– Make a photomosaic, sorting, drug discovery,
who will win NCAA tournament (it doesn’t mean
we know the procedure, but there is one)
• Undecidable problems:
– There is no possible procedure that solves the
problem
18 March 2002
CS 200 Spring 2002
17
Are there any undecidable
problems?
The Proof-Finding Problem:
Input: an axiomatic system, a statement S
Output:
A valid proof of S if S is true. If there is no
proof, false.
18 March 2002
CS 200 Spring 2002
18
Any others?
18 March 2002
CS 200 Spring 2002
19
Undecidable Problems
• We can prove a problem is undecidable by
showing it is at least as hard as the prooffinding problem
• Here’s a famous one:
Halting Problem
Input: a procedure P (described by a Scheme
program)
Output: true if P always halts (finishes
execution), false otherwise.
18 March 2002
CS 200 Spring 2002
20
Alan Turing (1912-1954)
• Published On Computable
Numbers … (1936)
– Introduced the Halting Problem
– Also: formal model of computation
and design for computers
• WWII: codebreaker at Bletchley
Park (broke Enigma Cipher)
– Even more important than Lorenz
• After the war: convicted of
homosexuality (then a crime in Britian),
commited suicide eating cyanide apple
18 March 2002
CS 200 Spring 2002
21
Halting Problem
Can we define a procedure always-halts
that takes the code for a procedure and
evaluates to #t if the procedure always
terminates, and to #f if it may not
terminate?
(define (always-halts procedure) … )
18 March 2002
CS 200 Spring 2002
22
Examples
> (always-halts ‘(lambda (x) (+ x x)))
#t
> (always-halts ‘(lambda (x)
(define (f x) (f x))
(f x)))
#f
> (always-halts ‘(lambda (x)
(define (fact n)
(if (= n 1) 1 (* n (fact (- n 1)))))
(fact x)))
#f
18 March 2002
CS 200 Spring 2002
23
Can we define halts??
• We could try for a really long time, get
something to work for simple examples,
but could we solve the problem? (Make it
work for all possible inputs.)
• Could we compute find-proof if we had
always-halts?
18 March 2002
CS 200 Spring 2002
24
find-proof
I cheated a little here –
we only know we can’t
do this for “true”.
(define (find-proof S axioms rules)
;; If S is provable, evaluates to a proof of S.
;; Otherwise, evaluates to #f.
(if (always-halts?
(find-proof-exhaustive S axioms rules))
((find-proof-exhaustive S axioms rules)))
#f))
Where (find-proof-exhaustive S axioms rules) evaluates to a procedure
that tries all possible proofs starting from the axioms.
18 March 2002
CS 200 Spring 2002
25
Another Informal Proof
(define (contradict-halts)
(if (always-halts contradict-halts)
(loop-forever)
#t))
If contradict-halts halts, the if test is true and
it evaluates to (loop-forever) - it doesn’t halt!
If contradict-halts doesn’t halt, the if test if false,
and it evaluates to #t. It halts!
18 March 2002
CS 200 Spring 2002
26
This should remind you of…
Russell’s Paradox
• S: set of all sets that are not members of
themselves
• Is S a member of itself?
– If S is an element of S, then S is a member of
itself and should not be in S.
– If S is not an element of S, then S is not a
member of itself, and should be in S.
18 March 2002
CS 200 Spring 2002
27
Undecidable Problems
• If solving a problem P would allow us to
solve the halting problem, then P is
undecidable – there is no solution to P,
since we have proved there is no solution
to the halting problem!
• There are lots of practical problems like
this…we’ll practice on them Friday.
18 March 2002
CS 200 Spring 2002
28
Charge
• Friday
– Practice determining if problems are
decidable (in P, in NP, not in NP) or
undecidable
• PS 6
– Even if you take into account Hofstadter’s
Law and Byrd’s Law, it may be longer than
you think so get cracking!
18 March 2002
CS 200 Spring 2002
29