(** [match_callstack] and allocations *)

Lemma match_callstack_alloc_right:
forall f m tm cs tf tm' sp le te cenv,
match_callstack f m tm cs (Mem.nextblock m) (Mem.nextblock tm) ->
Mem.alloc tm 0 tf.(fn_stackspace) = (tm', sp) ->
Mem.inject f m tm ->
match_temps f le te ->
(forall id, cenv!id = None) ->
match_callstack f m tm'
(Frame cenv tf empty_env le te sp (Mem.nextblock m) (Mem.nextblock m) :: cs)
(Mem.nextblock m) (Mem.nextblock tm').