[an error occurred while processing this directive]

Class 17 Notes

Lecture Slides, Suitable For Printing

Notes

Gödel's Statement:
G: This statment does not have any proof in the system.

What would it mean if G is true?




What would it mean if G is false?




Proof: A proof of S in an axiomatic system is a sequence of strings, T0, T1, ..., Tn where:

Computability

Procedure: A precise (mechanizable) description of a process.

Alrogithm: A procedure that always terminates.

Is there an algorithm (a procedure that always terminates) that solves the problem?

A problem is computable (decidable) is there exists an algorithm that can solve the problem for all possible inputs. It is not necessary to know what that algorithm is to say a problem is computable, only to know that some algorithm to solve it must exist. For example, chess is a computable problem, even if we do not yet know a practical algorithm that solves it (yes).

A problem is uncomputable if there is no algorithm that can solve the problem. There might be a procedure, but it is not guaranteed to terminate.

What is the Halting Problem?









Is it possible to define a procedure that solves the Halting Problem?

(define (contradict-halts)
  (if (halts? contradict-halts) 
      (infinite-loop) 






Halting Problem

Input: a procedure specification P

Output: true if applying P would halt (finishes execution), false otherwise.

(define (halts? procedure) ...?...)
(define (paradox)
  (if (halts? 'paradox) 
      (infinite-loop)
      150))
What would it mean if (halts? 'paradox) evaluates to #t?







What would it mean if (halts? 'paradox) evaluates to #f?







Prove the halts? algorithm cannot exist.







Alan Turing Links

John Backus Links