Automata Theory and Its Applications by Anil Nerode & Bakhadyr Khoussainov