Automata Theory And Logic