Theory of computation - Sipser,Michael (Cengage Learning, 2011)