Definition prog_var_block (rho: environ) (il: list ident) (b: block) : Prop :=
  Exists (fun id => match ge_of rho id with Some b' => b'=b | _ => False end) il.

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