(** We define the ``adherence'' of the problem [mu] as the set of registers that partially overlap with one of the registers possibly assigned by the parallel move: destinations and temporaries. Again, we define the complement of the ``adherence'' set, which is more convenient for Coq reasoning. *)
Definition no_adherence (r: reg) : Prop :=
forall x, In x (dests mu) \/ is_temp x -> no_overlap x r.
(** As a consequence of the hypotheses on [mu], none of the destination registers, source registers, and temporaries belong to the adherence. *)

Lemma no_adherence_src:
forall s, In s (srcs mu) -> no_adherence s.