The aim of this textbook is to provide undergraduate students with an introduction to the basic theoretical models of computability, and to develop some of the model's rich and varied structure. Students who have already some experience with elementary discrete mathematics will find this a well-paced first course, and a number of supplementary chapters introduce more advanced concepts. The first part of the book is devoted to finite automata and their properties. Pushdown automata provide a broader class of models and enable the analysis of context-free languages. In the remaining chapters, Turing machines are introduced and the book culminates in discussions of effective computability, decidability, and Gödel's incompleteness theorems. Plenty of exercises are provided, ranging from the easy to the challenging. As a result, this text will make an ideal first course for students of computer science.
Lectures.- 1 Course Roadmap and Historical Perspective.- 2 Strings and Sets.- 3 Finite Automata and Regular Sets.- 4 More on Regular Sets.- 5 Nondeterministic Finite Automata.- 6 The Subset Construction.- 7 Pattern Matching.- 8 Pattern Matching and Regular Expressions.- 9 Regular Expressions and Finite Automata.- A Kleene Algebra and Regular Expressions.- 10 Homomorphisms.- 11 Limitations of Finite Automata.- 12 Using the Pumping Lemma.- 13 DFA State Minimization.- 14 A Minimization Algorithm.- 15 Myhill-Nerode Relations.- 16 The Myhill-Nerode Theorem.- B Collapsing Nondeterministic Automata.- C Automata on Terms.- D The Myhill-Nerode Theorem for Term Automata.- 17 Two-Way Finite Automata.- 18 2DFAs and Regular Sets.- 19 Context-Free Grammars and Languages.- 20 Balanced Parentheses.- 21 Normal Forms.- 22 The Pumping Lemma for CFLs.- 23 Pushdown Automata.- E Final State Versus Empty Stack.- 24 PDAs and CFGs.- 25 Simulating NPDAs by CFGs.- F Deterministic Pushdown Automata.- 26 Parsing.- 27 The Cocke-Kasami-Younger Algorithm.- G The Chomsky-Schützenberger Theorem.- H Parikh's Theorem.- 28 Turing Machines and Effective Computability.- 29 More on Turing Machines.- 30 Equivalent Models.- 31 Universal Machines and Diagonalization.- 32 Decidable and Undecidable Problems.- 33 Reduction.- 34 Rice's Theorem.- 35 Undecidable Problems About CFLs.- 36 Other Formalisms.- 37 The a-Calculus.- I While Programs.- J Beyond Undecidability.- 38 Gödel's Incompleteness Theorem.- 39 Proof of the Incompleteness Theorem.- K Gödel's Proof.- Exercises.- Homework Sets.- Homework 1.- Homework 2.- Homework 3.- Homework 4.- Homework 5.- Homework 6.- Homework 7.- Homework 8.- Homework 9.- Homework 10.- Homework 11.- Homework 12.- Miscellaneous Exercises.- Finite Automata andRegular Sets.- Pushdown Automata and Context-Free Languages.- Turing Machines and Effective Computability.- Hints and Solutions.- Hints for Selected Miscellaneous Exercises.- Solutions to Selected Miscellaneous Exercises.- References.- Notation and Abbreviations.