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).