Definition hackfun phi0 phi :=
level phi0 = level phi /\ ghost_of phi0 = ghost_of phi /\
forall loc, (identity (phi0 @ loc) <-> identity (phi @ loc)) /\
(~identity (phi0 @ loc) -> (phi0 @ loc = phi @ loc)).

Lemma alloc_Gfun_inflate:
forall n rho i f fs gv vl gev m0 m G0 G,
Genv.alloc_global gev m0 (i, Gfun f) = Some m ->
(forall phi : rmap,
hackfun (inflate_initial_mem m0 (initial_core gev (G0 ++ (i, fs) :: G) n))
phi ->
(globvars2pred gv vl rho) phi) ->
Genv.find_symbol gev i = Some (nextblock m0) ->
~ In i (map fst vl) ->
forall phi : rmap,
hackfun (inflate_initial_mem m (initial_core gev (G0 ++ (i, fs) :: G) n)) phi ->
(globvars2pred gv vl rho) phi.