(*TODO: Move to ev_semantics*)
    Definition in_free_list (b : block) ofs xs :=
      exists x, List.In x xs /\
           let '(b', lo, hi) := x in
           b = b' /\
           (lo <= ofs < hi)%Z.

Lemma ev_elim_free_1: forall m ev m' b ofs, ev_elim m ev m' -> in_free_list_trace b ofs ev -> (permission_at m b ofs Cur = Some Freeable \/ ~ Mem.valid_block m b) /\ permission_at m' b ofs Cur = None /\ Mem.valid_block m' b /\ exists e, List.In e ev /\ match e with | event_semantics.Free _ => True | _ => False end.