I'm trying to solve an exercise problem for my formal languages class, that's to do with the Myhill-Nerode Theorem for regular languages. I'm given the following information and asked to find out all of the equivalence classes of the Myhill-Nerode-Relation in relation to the language.
$$\Sigma \equiv \{0,1\}$$ $$B \equiv \left\{ w \in \Sigma^* \;|\; w \text{ doesn't end in } 01 \right\}$$
My first instinct was to use the Table-Filling-Algorithm to find all the equivalence classes and use that to minimize the DFA but I was hoping that there would be another method to find all the equivalence classes without creating the table, which can take some time, which is something I want to avoid in my exam.
Essentially my question is, "Is there another method to find all the equivalence classes of a given language without using the Table-Filling-Algorithm?"
The Myhill-Nerode equivalence relation is that $x \sim_R y$ iff $x$ and $y$ have no distinguishing extension; i.e., if $xz$ and $yz$ are both in $B$ or both not in $B$ for any string $z$. A way to generate the equivalence classes is to start with $B$ and $B^c$ (which are distinguished from each other by the empty string), and then split classes on every possible distinguishing extension. In this case, if $z$ ends in $01$, then $xz$ and $yz$ are both not in $B$, and if $z$ ends in $0$ or $11$, then $xz$ and $yz$ are both in $B$, independent of $x$ and $y$. So the only possible distinguishing extension is the string $1$. Adding $1$ to two strings in $B^c$ (strings that end in $01$) does not distinguish them: both wind up in $B$. So $B^c$ is an equivalence class. Adding $1$ to two strings in $B$ (strings that don't end in $01$) will distinguish them if one ends in $0$ and the other doesn't. So $B$ splits into two equivalence classes: strings that end in $0$, and strings that don't end in $01$ or $0$ (this set includes the empty string). You wind up with three equivalence classes.