(** The relation [env_match] holds between two environments [e1] and [e2]
    if they assign the same values to all registers not in the adherence set. *)

Definition env_match (e1 e2: env) : Prop :=
  forall r, no_adherence r -> e1 r = e2 r.

Lemma weak_exec_seq_match: forall m e1 e2, (forall s, In s (srcs m) -> In s (srcs mu) \/ is_temp s) -> (forall d, In d (dests m) -> In d (dests mu) \/ is_temp d) -> env_match e1 e2 -> env_match (exec_seq m e1) (weak_exec_seq m e2).