Introduction to automata theory, languages, and computation. ([2014])