Theory of Computation - Sipser, Michael (Vidhyanagar Cengage Learning, 2007)