Section MemInterference.
Definition mem_effect_forward: mem -> Events.mem_effect -> mem -> Prop.
(* Definition mem_effect_forward m ev m':= execute ev in m, without checking for permissions. *)
Admitted.
Inductive mem_interference: mem -> list Events.mem_effect -> mem -> Prop:=
| Nil_mem_interference: forall m, mem_interference m nil m
| Build_mem_interference: forall m m' m'' ev lev,
mem_effect_forward m ev m' ->
mem_interference m' lev m'' ->
mem_interference m (ev::lev) m''.
(* OLD_mem_interference:= Mem.unchanged_on (loc_readable_cur m) m *)

Lemma mem_effect_forward_determ:
forall eff m m1' m2',
mem_effect_forward m eff m1' ->
mem_effect_forward m eff m2' ->
m1' = m2'.