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 another_hackfun_lemma: forall n i v gev m G phi m0, hackfun (inflate_initial_mem m (initial_core gev G n)) phi -> Genv.alloc_global gev m0 (i, Gvar v) = Some m -> hackfun (inflate_initial_mem m0 (initial_core gev G n)) (upto_block (nextblock m0) phi).