Introduction to the theory of computation - Sipser, Michael (Cengage Learning:, 2013)