  Separation is a classical problem in mathematics and computer science. It
asks whether, given two sets belonging to some class, it is possible to
separate them by another set of a smaller class. We present and discuss the
separation problem for regular languages. We then give a direct polynomial time
algorithm to check whether two given regular languages are separable by a
piecewise testable language, that is, whether a $B{\Sigma}1(<)$ sentence can
witness that the languages are indeed disjoint. The proof is a reformulation
and a refinement of an algebraic argument already given by Almeida and the
second author.
