(* Lemma alloc_global_inflate_identity_iff: forall gev m0 i f m G n loc, Genv.alloc_global gev m0 (i, Gfun f) = Some m -> (identity (inflate_initial_mem m0 (initial_core gev G n) @ loc) <-> identity (inflate_initial_mem m (initial_core gev G n) @ loc)). *)

Lemma global_initializers:
forall (prog: program) G m n rho,
list_norepet (prog_defs_names prog) ->
all_initializers_aligned prog ->
match_fdecs (prog_funct prog) G ->
ge_of rho = filter_genv (globalenv prog) ->
Genv.init_mem prog = Some m ->
app_pred (globvars2pred (globals_of_env rho) (prog_vars prog) rho)
(inflate_initial_mem m (initial_core (Genv.globalenv prog) G n)).