



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A series of lecture notes from the university of virginia's cs150 course, fall 2005, focusing on computability and gödel's theorem. The notes cover topics such as gödel's proof, completeness and consistency of axiomatic systems, the proof-checking problem, and the halting problem. Students will learn about the concept of computability, decidable and undecidable problems, and the significance of gödel's theorem in computer science.
Typology: Study notes
1 / 5
This page cannot be seen from the preview
Don't miss anything!




David Evans http://www.cs.virginia.edu/evans
CS150: Computer Science University of Virginia Computer Science
Halting Problems Hockey Team Logo
CS150 Fall 2005: Lecture 24: Computability 2
CS150 Fall 2005: Lecture 24: Computability 3
If G were provable, then PM would be inconsistent. If G is unprovable, then PM would be incomplete.
PM cannot be complete and consistent! CS150 Fall 2005: Lecture 24: Computability 4
Derives all true statements, and no false statements starting from a finite number of axioms and following mechanical inference rules.
CS150 Fall 2005: Lecture 24: Computability 5
It means the axiomatic system is weak.
Its is so weak, it cannot express “This statement has no proof.”
CS150 Fall 2005: Lecture 24: Computability 6
CS150 Fall 2005: Lecture 24: Computability 7
Inconsistent Axiomatic System
Derives all true statements, and some false statements starting from a finite number of axioms and following mechanical inference rules. (^) some false Once you can prove one false statement, statements everything can be proven! false ⇒ anything CS150 Fall 2005: Lecture 24: Computability 8
Proof
CS150 Fall 2005: Lecture 24: Computability 9
Proof Checking Problem
We can write a proof-checking procedure that is θ ( n )
CS150 Fall 2005: Lecture 24: Computability 10
Finite-Length Proof Finding Problem
At worst, we can try all possible proofs: r inference rules, 0 - n steps ~ rn^ possible proofs Checking each proof is θ ( n ) So, there is a procedure that is θ ( nrn ) but, it might not be the best one.
CS150 Fall 2005: Lecture 24: Computability 11
Proof Finding Problem
How much work? It is impossible! “It might take infinite work.” Gödel’s theorem says it cannot be done. CS150 Fall 2005: Lecture 24: Computability 12
Computability
CS150 Fall 2005: Lecture 24: Computability 19
Halting Problem
Define a procedure halts? that takes a procedure and an input evaluates to #t if the procedure would terminate on that input, and to #f if would not terminate.
(define (halts? procedure input) … )
CS150 Fall 2005: Lecture 24: Computability 20
Examples
(halts? ‘(lambda (x) (+ x x)) 3) #t (halts? ‘(lambda (x) (define (f x) (f x)) (f x))
#f
CS150 Fall 2005: Lecture 24: Computability 21
Halting Examples
(halts? `(lambda (x) (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) (fact x))
#t
(halts? `(lambda (x) (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) (fact x))
#f CS150 Fall 2005: Lecture 24: Computability 22
Can we define halts??
CS150 Fall 2005: Lecture 24: Computability 23
find-proof (define (find-proof S axioms rules) ;; If S is provable, evaluates to a proof of S. ;; Otherwise, evaluates to #f. (if (halts? find-proof-exhaustive S axioms rules)) (find-proof-exhaustive S axioms rules) #f)) Where (find-proof-exhaustive S axioms rules) is a procedure that tries all possible proofs starting from the axioms that evaluates to a proof if it finds one, and keeps working if it doesn’t.
I cheated a little here – we only know we can’t do this for “true”.
CS150 Fall 2005: Lecture 24: Computability 24
Another Informal Proof
(define (contradict-halts x) (if (halts? contradict-halts null) (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!
CS150 Fall 2005: Lecture 24: Computability 25
Reducing Undecidable Problems
Charge