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 *)
Admitted.
End MemInterference.
Definition consecutive_until: block -> list Events.mem_effect -> block -> Prop.
Admitted.

Lemma interference_consecutive_until:
forall {m lev m'},
mem_interference m lev m' ->
consecutive_until (Mem.nextblock m) lev (Mem.nextblock m').