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 restrict_forall_vals_inject: forall j vals1 vals2 (Inj : Forall2 (val_inject j) vals1 vals2) X (HR: forall b, getBlocks vals1 b = true -> X b = true), Forall2 (val_inject (restrict j X)) vals1 vals2.