How to find the equivalence classes of a regular language
You have to be creative. In this case, the equivalence classes are:


$X_a = \{0^a\}$ for $a \geq 0$.
$Y_a = \{0^{n+a} 1^n : n &gt; 0\}$ for $a \geq 0$.
$Z = \{0^n 1^m : m &gt; n \}$.
$W = \{w : w \text{ contains } 10\}$.


We can construct an infinite DFA to show that each of these classes consists of equivalent words:


The initial state is $X_0$.
The accepting states are $X_a,Y_a$ for $a \neq 0$ and $Z$.
$\delta(X_a,0) = X_{a+1}$, $\delta(X_0,1) = Z$, $\delta(X_{a+1},1) = Y_a$.
$\delta(Y_a,0) = W$, $\delta(Y_0,1) = Z$, $\delta(Y_{a+1},1) = Y_a$.
$\delta(Z,0) = W$, $\delta(Z,1) = Z$.
$\delta(W,0) = \delta(W,1) = W$.


This also shows that the classes cover all of $\Sigma^*$. Finally, in order to show that these are the equivalence classes, we need to show that any two classes have a separating word:


$X_a,X_b$: $1^a$.
$X_a,Y_a$: $0$.
$X_a,Y_b$: $0$.
$X_a,Z$: $1^a$.
$X_a,W$: $0$.
$Y_a,Y_b$: $1^a$.
$Y_a,Z$: $1^a$.
$Y_a,W$: $1^{a+1}$.
$Z,W$: $\epsilon$.