Preface |
|
vii | |
Introduction |
|
x | |
|
Chapter 1 Mathematical Tools and Techniques |
|
|
1 | (44) |
|
|
1 | (7) |
|
|
8 | (4) |
|
1.3 Functions and Equivalence Relations |
|
|
12 | (5) |
|
|
17 | (4) |
|
1.5 Recursive Definitions |
|
|
21 | (5) |
|
|
26 | (19) |
|
|
34 | (11) |
|
Chapter 2 Finite Automata and the Languages They Accept |
|
|
45 | (47) |
|
2.1 Finite Automata: Examples and Definitions |
|
|
45 | (9) |
|
2.2 Accepting the Union, Intersection, or Difference of Two Languages |
|
|
54 | (4) |
|
2.3 Distinguishing One String from Another |
|
|
58 | (5) |
|
|
63 | (5) |
|
2.5 How to Build a Simple Computer Using Equivalence Classes |
|
|
68 | (5) |
|
2.6 Minimizing the Number of States in a Finite Automaton |
|
|
73 | (19) |
|
|
77 | (15) |
|
Chapter 3 Regular Expressions, Nondeterminism, and Kleene's Theorem |
|
|
92 | (38) |
|
3.1 Regular Languages and Regular Expressions |
|
|
92 | (4) |
|
3.2 Nondeterministic Finite Automata |
|
|
96 | (8) |
|
3.3 The Nondeterminism in an NFA Can Be Eliminated |
|
|
104 | (6) |
|
3.4 Kleene's Theorem, Part 1 |
|
|
110 | (4) |
|
3.5 Kleene's Theorem, Part 2 |
|
|
114 | (16) |
|
|
117 | (13) |
|
Chapter 4 Context-Free Languages |
|
|
130 | (34) |
|
4.1 Using Grammar Rules to Define a Language |
|
|
130 | (4) |
|
4.2 Context-Free Grammars: Definitions and More Examples |
|
|
134 | (4) |
|
4.3 Regular Languages and Regular Grammars |
|
|
138 | (3) |
|
4.4 Derivation Trees and Ambiguity |
|
|
141 | (8) |
|
4.5 Simplified Forms and Normal Forms |
|
|
149 | (15) |
|
|
154 | (10) |
|
Chapter 5 Pushdown Automata |
|
|
164 | (41) |
|
5.1 Definitions and Examples |
|
|
164 | (8) |
|
5.2 Deterministic Pushdown Automata |
|
|
172 | (4) |
|
5.3 A PDA from a Given CFG |
|
|
176 | (8) |
|
5.4 A CFG from a Given PDA |
|
|
184 | (7) |
|
|
191 | (14) |
|
|
196 | (9) |
|
Chapter 6 Context-Free and Non-Context-Free Languages |
|
|
205 | (19) |
|
6.1 The Pumping Lemma for Context-Free Languages |
|
|
205 | (9) |
|
6.2 Intersections and Complements of CFLs |
|
|
214 | (4) |
|
6.3 Decision Problems Involving Context-Free Languages |
|
|
218 | (6) |
|
|
220 | (4) |
|
Chapter 7 Turing Machines |
|
|
224 | (41) |
|
7.1 A General Model of Computation |
|
|
224 | (5) |
|
7.2 Turing Machines as Language Acceptors |
|
|
229 | (5) |
|
7.3 Turing Machines That Compute Partial Functions |
|
|
234 | (4) |
|
7.4 Combining Turing Machines |
|
|
238 | (5) |
|
7.5 Multitape Turing Machines |
|
|
243 | (4) |
|
7.6 The Church-Turing Thesis |
|
|
247 | (1) |
|
7.7 Nondeterministic Turing Machines |
|
|
248 | (4) |
|
7.8 Universal Turing Machines |
|
|
252 | (13) |
|
|
257 | (8) |
|
Chapter 8 Recursively Enumerable Languages |
|
|
265 | (34) |
|
8.1 Recursively Enumerable and Recursive |
|
|
265 | (3) |
|
8.2 Enumerating a Language |
|
|
268 | (3) |
|
8.3 More General Grammars |
|
|
271 | (6) |
|
8.4 Context-Sensitive Languages and the Chomsky Hierarchy |
|
|
277 | (6) |
|
8.5 Not Every Language Is Recursively Enumerable |
|
|
283 | (16) |
|
|
290 | (9) |
|
Chapter 9 Undecidable Problems |
|
|
299 | (32) |
|
9.1 A Language That Can't Be Accepted, and a Problem That Can't Be Decided |
|
|
299 | (5) |
|
9.2 Reductions and the Halting Problem |
|
|
304 | (4) |
|
9.3 More Decision Problems Involving Turing Machines |
|
|
308 | (6) |
|
9.4 Post's Correspondence Problem |
|
|
314 | (7) |
|
9.5 Undecidable Problems Involving Context-Free Languages |
|
|
321 | (10) |
|
|
326 | (5) |
|
Chapter 10 Computable Functions |
|
|
331 | (27) |
|
10.1 Primitive Recursive Functions |
|
|
331 | (7) |
|
10.2 Quantification, Minimalization, and μ-Recursive Functions |
|
|
338 | (6) |
|
|
344 | (4) |
|
10.4 All Computable Functions Are μ-Recursive |
|
|
348 | (4) |
|
10.5 Other Approaches to Computability |
|
|
352 | (6) |
|
|
353 | (5) |
|
Chapter 11 Introduction to Computational Complexity |
|
|
358 | (31) |
|
11.1 The Time Complexity of a Turing Machine, and the Set P |
|
|
358 | (5) |
|
11.2 The Set NP and Polynomial Verifiability |
|
|
363 | (6) |
|
11.3 Polynomial-Time Reductions and NP-Completeness |
|
|
369 | (4) |
|
11.4 The Cook-Levin Theorem |
|
|
373 | (5) |
|
11.5 Some Other NP-Complete Problems |
|
|
378 | (11) |
|
|
383 | (6) |
Solutions to Selected Exercises |
|
389 | (36) |
Selected Bibliography |
|
425 | (2) |
Index of Notation |
|
427 | (1) |
Index |
|
428 | |