Remark store_init_data_outside:
  forall {F V} genv b i m p m',
  @Genv.store_init_data F V genv m b p i = Some m' ->
  forall chunk b' q,
  b' <> b \/ q + size_chunk chunk <= p \/ p + init_data_size i <= q ->
  Mem.load chunk m' b' q = Mem.load chunk m b' q.Remark store_init_data_list_outside:
  forall {F V} genv b il m p m',
  @Genv.store_init_data_list F V genv m b p il = Some m' ->
  forall chunk b' q,
  b' <> b \/ q + size_chunk chunk <= p ->
  Mem.load chunk m' b' q = Mem.load chunk m b' q.

Lemma init_data_list_lem: forall (ge: genv) m0 (v: globvar type) m1 b m2 m3 m4 phi0 rho, alloc m0 0 (init_data_list_size (gvar_init v)) = (m1,b) -> store_zeros m1 b 0 (init_data_list_size (gvar_init v)) = Some m2 -> Genv.store_init_data_list ge m2 b 0 (gvar_init v) = Some m3 -> drop_perm m3 b 0 (init_data_list_size (gvar_init v)) (Genv.perm_globvar v) = Some m4 -> forall (Hg: noghost phi0) (SANITY: init_data_list_size (gvar_init v) < Ptrofs.modulus) (VOL: gvar_volatile v = false) (AL: initializers_aligned 0 (gvar_init v) = true) (RHO: ge_of rho = filter_genv ge), init_data_list2pred (gvar_init v) (readonly2share (gvar_readonly v)) (Vptr b Ptrofs.zero) rho (beyond_block b (inflate_initial_mem m4 phi0)).