The Theory of Computation - Sipser Michael (Thomson)