Introduction to the theory of computation - Sipser, Michael (PWS Pub. Co., 1997)