A Course in Formal Languages, Automata and Groups by Ian M. Chiswell