(** Two registers partially overlap if they are different and not disjoint.
    For the Coq development, it is easier to define the complement:
    two registers do not partially overlap if they are identical or disjoint. *)

Definition no_overlap (r1 r2: reg) : Prop :=
  r1 = r2 \/ disjoint r1 r2.

(* Specifications: *)
Lemma no_overlap_sym: forall r1 r2, no_overlap r1 r2 -> no_overlap r2 r1.
Lemma no_overlap_sym: forall r1 r2, no_overlap r1 r2 -> no_overlap r2 r1.