Introduction to the theory of computation - Sipser, Michael (PWS publishing company, 1997)