Introduction to the theory of computation - Sipser, Michael (Andover, 2025)