Dexter C. Kozen - Automata and Computability Introduction To The Theory Of Computation Michael Sipser