Introduction to automata theory, languages and computation - HOPCROFT, John E. (Addison-Wesley, 1979)