 So we need techniques for comparing the expressive strengths of languages. One of the most powerful techniques available consists of the back-and-forth games of Ehrenfeucht and Fraïssé between the two players Spoiler and Duplicator; see the entry on  logic and games  for details. Imagine for example that we play the usual first-order back-and-forth game \(G\) between two structures \(A\) and \(B\). The theory of these games establishes that if some first-order sentence \(\phi\) is true in exactly one of \(A\) and \(B\), then there is a number \(n\), calculable from \(\phi\), with the property that Spoiler has a strategy for \(G\) that will guarantee that he wins in at most \(n\) steps. So conversely, to show that first-order logic can’t distinguish between \(A\) and \(B\), it suffices to show that for every finite \(n\), Duplicator has a strategy that will guarantee she doesn’t lose \(G\) in the first \(n\) steps. If we succeed in showing this, it follows that any language which does distinguish between \(A\) and \(B\) is not reducible to the first-order language of the structures \(A\) and \(B\).