$ relationships. Indeed, if $q$ and $p$ are two leaves that belong to side $s$, and $q$ is nearer to $s^{-}$ in the network we aim to reconstruct, then obviously $p \rightarrow q$. Since ${{\mathcal C}}$ is separating there will be (by separation) some cluster that contains $q$ but not $p$, so $q \not \rightarrow p$. [If all leaves can be added in such a way, we obtain a simple level-$k$ network on ${{\mathcal X}}$ and we can check in polynomial time if it represents ${{\mathcal C}}$. If it is not the case or we fail to insert at least one leaf in the network, another set of guesses can be checked until a simple level-$k$ network representing ${{\mathcal C}}$ (if any exist) is found]{}. This concludes the proof.

The following corollary follows automatically from the generality of the proof of Lemma \[lem:core\].

![image](./Figures/twotreesfig7)

Let ${{\mathcal C}}$ be a separating set of clusters on ${{\mathcal X}}$. Then, for every fixed $k \geq 0$, it is possible to construct in polynomial time *all* binary simple level-$k$ networks that represent ${{\mathcal C}}$.

Using Lemma \[lem:core\] we can prove the following result:

\[thm:core\] Let ${{\mathcal C}}$ be a (not necessarily separating) set of 