Definition REACH_closed m (X: Values.block -> bool) : Prop :=
  (forall b, REACH m X b = true -> X b = true).Definition mapped (j:meminj) b : bool :=
  match j b with None => false | Some _ => true end.

Lemma inject_restrict: forall j m1 m2 X (INJ : Mem.inject j m1 m2) (RC : REACH_closed m1 X), Mem.inject (restrict j X) m1 m2.