# Myhill–Nerode theorem

In the theory of formal languages, the Myhill–Nerode theorem provides a necessary and sufficient condition for a language to be regular. The theorem is named for John Myhill and Anil Nerode, who proved it at the University of Chicago in 1958 (Nerode 1958).

## Statement

Given a language ${\displaystyle L}$, and a pair of strings ${\displaystyle x}$ and ${\displaystyle y}$, define a distinguishing extension to be a string ${\displaystyle z}$ such that exactly one of the two strings ${\displaystyle xz}$ and ${\displaystyle yz}$ belongs to ${\displaystyle L}$. Define a relation ${\displaystyle {}_{L}{\sim }}$ on strings as ${\displaystyle x\;{}_{L}{\sim }\ y}$ iff there is no distinguishing extension for ${\displaystyle x}$ and ${\displaystyle y}$. It is easy to show that ${\displaystyle {}_{L}{\sim }}$ is an equivalence relation on strings, and thus it divides the set of all strings into equivalence classes.

The Myhill–Nerode theorem states that a language ${\displaystyle L}$ is regular if and only if ${\displaystyle {}_{L}{\sim }}$ has a finite number of equivalence classes, and moreover, that this number is equal to the number of states in the minimal deterministic finite automaton (DFA) recognizing ${\displaystyle L}$. In particular, this implies that there is a unique minimal DFA for each regular language (Hopcroft & Ullman 1979).

Some authors refer to the ${\displaystyle {}_{L}{\sim }}$ relation as Nerode congruence,[1][2] in honor of Anil Nerode.

## Proof

If ${\displaystyle L}$ is a regular language, then by definition there is a DFA ${\displaystyle A}$ that recognizes it, with only finitely many states. If there are ${\displaystyle n}$ states, then partition the set of all finite strings into ${\displaystyle n}$ subsets, where subset ${\displaystyle S_{i}}$ is the set of strings that, when given as input to automaton ${\displaystyle A}$, cause it to end in state ${\displaystyle i}$. For every two strings ${\displaystyle x}$ and ${\displaystyle y}$ that belong to the same subset, and for every choice of a third string ${\displaystyle z}$, automaton ${\displaystyle A}$ reaches the same state on input ${\displaystyle xz}$ as it reaches on input ${\displaystyle yz}$, and therefore must either accept both of the inputs ${\displaystyle xz}$ and ${\displaystyle yz}$ or reject both of them. Therefore, no string ${\displaystyle z}$ can be a distinguishing extension for ${\displaystyle x}$ and ${\displaystyle y}$, so they must be related by ${\displaystyle {}_{L}{\sim }}$. Thus, ${\displaystyle S_{i}}$ is a subset of an equivalence class of ${\displaystyle {}_{L}{\sim }}$. Combining this fact with the fact that every member of one of these equivalence classes belongs to one of the sets ${\displaystyle S_{i}}$, this gives a many-to-one relation from states of ${\displaystyle A}$ to equivalence classes, implying that the number of equivalence classes is finite and at most ${\displaystyle n}$.

In the other direction, suppose that ${\displaystyle {}_{L}{\sim }}$ has finitely many equivalence classes. In this case, it is possible to design a deterministic finite automaton that has one state for each equivalence class. The start state of the automaton corresponds to the equivalence class containing the empty string, and the transition function from a state ${\displaystyle X}$ on input symbol ${\displaystyle y}$ takes the automaton to a new state, the state corresponding to the equivalence class containing string ${\displaystyle xy}$, where ${\displaystyle x}$ is an arbitrarily chosen string in the equivalence class for ${\displaystyle X}$. The definition of the Myhill–Nerode relation implies that the transition function is well-defined: no matter which representative string ${\displaystyle x}$ is chosen for state ${\displaystyle X}$, the same transition function value will result. A state of this automaton is accepting if the corresponding equivalence class contains a string in ${\displaystyle L}$; in this case, again, the definition of the relation implies that all strings in the same equivalence class must also belong to ${\displaystyle L}$, for otherwise the empty string would be a distinguishing string for some pairs of strings in the class.

Thus, the existence of a finite automaton recognizing ${\displaystyle L}$ implies that the Myhill–Nerode relation has a finite number of equivalence classes, at most equal to the number of states of the automaton, and the existence of a finite number of equivalence classes implies the existence of an automaton with that many states.

## Use and consequences

The Myhill–Nerode theorem may be used to show that a language ${\displaystyle L}$ is regular by proving that the number of equivalence classes of ${\displaystyle {}_{L}{\sim }}$ is finite. This may be done by an exhaustive case analysis in which, beginning from the empty string, distinguishing extensions are used to find additional equivalence classes until no more can be found. For example, the language consisting of binary representations of numbers that can be divided by 3 is regular. Given the empty string, ${\displaystyle 00}$ (or ${\displaystyle 11}$), ${\displaystyle 01}$ and ${\displaystyle 10}$ are distinguishing extensions resulting in the three classes (corresponding to numbers that give remainders 0, 1 and 2 when divided by 3), but after this step there is no distinguishing extension anymore. The minimal automaton accepting our language would have three states corresponding to these three equivalence classes.

Another immediate corollary of the theorem is that if for a language ${\displaystyle L}$ the relation ${\displaystyle {}_{L}{\sim }}$ has infinitely many equivalence classes, it is not regular. It is this corollary that is frequently used to prove that a language is not regular.

## Generalizations

The Myhill–Nerode theorem can be generalized to tree automata.