Automaton Theory