Definition local_out_of_reach mu (m : mem) (b : block) (ofs : Z): Prop :=
locBlocksTgt mu b = true /\
forall b0 delta, local_of mu b0 = Some (b, delta) ->
(~ Mem.perm m b0 (ofs - delta) Max Nonempty \/
pubBlocksSrc mu b0 = false).

Lemma restrict_vis_foreign_local mu: forall (WD: SM_wd mu),
restrict (as_inj mu) (vis mu) = join (foreign_of mu) (local_of mu).