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_val_inject: forall j val1 val2
(Inj : val_inject j val1 val2)
X (HR: forall b, getBlocks (val1::nil) b = true -> X b = true),
val_inject (restrict j X) val1 val2.