Sipser Exercise 1.61
let and define the family of languages:
Theorem: Any DFA recognizing must have at least states.
Proof: Consider the set of words and note that there are unique words in . We will show that any DFA must take different strings in to different states.
Let such that . Write and . Since they are unequal, let be the first index at which and differ. Then, between and , one must be an and one must be a . WLOG, suppose that and (otherwise, relabel and ).
Now, we want to construct new strings and , adding characters at the end until has its in the th spot from the end, and has its in the th spot from the end. So let and . Of course, we could have added s to the end as well, the choice doesn’t matter. Then , and the index from the end is . So, since and , and .
Now, notice that , because is accepted.
At the same time, because is rejected.
If it were the case that , then the same starting point and the same string would drive the machine to different states, which is a contradiction. So it must be the case that .
So since each of the strings in must drive the machine to a unique state, must have at least states.