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 consecutive_until_cat:
forall lev lev' b b' b'',
consecutive_until b lev b' ->
consecutive_until b' lev' b'' ->
consecutive_until b (lev ++ lev') b''.