Definition all_initializers_aligned (prog: program) :=
  forallb (fun idv => andb (initializers_aligned 0 (gvar_init (snd idv)))
                                 (Zlt_bool (init_data_list_size (gvar_init (snd idv))) Ptrofs.modulus))
                      (prog_vars prog) = true.

Lemma alloc_global_access: forall {F V} (ge: Genv.t F V) m i v m', Genv.alloc_global ge m (i, Gvar v) = Some m' -> forall z, access_at m' (nextblock m, z) Cur = if range_dec 0 z (init_data_list_size (gvar_init v)) then Some (Genv.perm_globvar v) else None.