finite deterministic automaton