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 replace_externs_meminj_preserves_globals: forall {F V} (ge: Genv.t F V) nu (PG: meminj_preserves_globals ge (extern_of nu) /\ (forall b, isGlobalBlock ge b = true -> frgnBlocksSrc nu b = true)) mu fSrc fTgt (Hyp: mu = replace_externs nu fSrc fTgt) (FRG: forall b, frgnBlocksSrc nu b = true -> fSrc b = true), meminj_preserves_globals ge (extern_of mu) /\ (forall b, isGlobalBlock ge b = true -> frgnBlocksSrc mu b = true).