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