Theory of Computation by Dexter C. Kozen