meeting 1, Thursday, Sept. 23:
- /CourseInfo - instructor, text, office hours, web page, grading,
- /Motivation - what is theory of computation about, and why study it?
- /TheGeneralIdea - decision problems, languages, classes of languages
- /RegularLanguages - finite automata, examples of languages that are and are not regular
- Summary: we saw an example of one kind of computational device (finite automata), the class of languages decidable by such devices, and we saw examples of languages that are decidable by such devices, and an example of a language that is not.
Homework for Tuesday (Sept. 28):
- Look at the "review" section in /TentativeTopics and read chapters 0-2 of the text.
- Send me email with your name, email address, briefly what you want out of the course, and, if you are interested in the proof groups, what are good meeting times for you.
- Prepare for QUIZ next tuesday on chapters 0-2 of the text. The quiz will cover material from chapters 0-2 (see /TentativeTopics "review" section for details) and will count as one of the quizzes that determines your grade.
meeting 2: Tuesday, Sept. 28
- entrance quiz -- 8:10 - 8:50am
- upload:ass1.pdf - Assignment 1, due Tuesday, Oct 5
- Introduction to Turing machines (Example 3.5)
meeting 3: Thursday, Sept. 30
- Turing machines (Example 3.6, Theorem 3.8)
- /EntranceQuizSolns
meeting 4: Tuesday, Oct. 4
- Quiz 1 returned - average 28/40. Getting 3 out of 4 problems was pretty good. Otherwise come see me.
- The historical notion of "effective procedure" -- Hilbert's tenth problem; formalizing mathematical proof -- and why these questions lead us to define Turing Machines. The important but subtle distinction between Turing-recognizable versus decidable.
- Languages:
- { p : p is a multivariate polynomial with integer roots} -- Turing-recognizable, but (although we didn't prove it) undecidable
- PROOFA = { p : p is a valid proof w.r.t. axiom system A} -- should be decidable for any "reasonable" axiom system A
- PROVABLEA = { s : s has a valid proof w.r.t. axiom system A} -- Recognizable, but not decidable if A is powerful enough (we didn't prove this yet)
- TRUEA = { s : s is "true" w.r.t. axiom system A} -- Not even recognizable (we didn't prove this though) if A is powerful enough.
- Encodings of mathematical objects in strings, including Turing machines
- ATM = { <M,w> : Turing machine M accepts input w }
- HALTTM = { <M,w> : Turing machine M eventually halts on input w }
- Universal Turing machine U, on input <M,w>:
- 1. Simulate M on w.
- 2. If M accepts, accept. If M rejects, reject.
- U Demonstrates that ATM is Turing-recognizable.
- In class we proved by diagonalization that ATM is not decidable. This was the technical highlight of this class meeting.
meeting 5: Thursday, Oct. 7
- definitions: Countably infinite, countable. Examples.
- "any set whose elements can be finitely encoded is countable"
- diagonalization: the set of real numbers is uncountable; the class of all languages over {0,1}* is uncountable.
- diagonalizing against the set of Turing-recognizable languages gives a non-recognizable language.
- as a corollary, we find that ATM is not decidable.
- For next time, choose languages from the last two groups in this list: /LanguageExamples . Prove that they are or are not decidable.
meeting 9: Thursday Oct 21
We've spent the last several meetings on chapter 5 of Sipser.
At this point, I hope you are getting comfortable using reductions
to show that languages are undecidable.
In this meeting, we showed that the following tiling problem is undecidable:
Given a finite collection of two-dimensional shapes (tiles),
is it possible to tile the positive orthant with those shapes.
(That is, can we put the shapes together in such a way that
they exactly cover the positive orthant. We can reuse the shapes.)