



























































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
The concept of computable functions and the halting problem in discrete mathematics. It discusses the impossibility of writing a program to determine if any given program halts or not, and the implications of this for the size of the set of computable functions compared to the set of all functions. The document also touches upon the notion of uncomputable functions and the undecidability of certain sets.
Typology: Slides
1 / 67
This page cannot be seen from the preview
Don't miss anything!




























































What kind of program
could a student who hated
his/her TA
hand in?
Note: This probably isn’t the best idea for how to do well on assignments.
The theory of what can
and can’t be computed by
an ideal computer is called
Computability Theory
or Recursion Theory.
Are all reals describable? Are all reals computable?
We saw that computable ⇒ describable, but do we also have describable ⇒ computable?
From the last lecture:
The “grading function” we just described is not computable! (We’ll see a proof soon.)
Hence: countably many computable functions!
There are only
countably many Java
programs.
Hence, there are only
countably many
computable functions.
Countably many computable functions.
Uncountably many
functions from Σ*^ to {0,1}.
Thus, most functions from Σ*^ to {0,1} are not computable.
Fix a single programming language (Java)
When we write program P we are talking about the text of the source code for P
P(x) means the output that arises from running program P on input x, assuming that P eventually halts.
P(x) = ⊥ means P did not halt on x