Section InternalCall.
(****************The following three conditions are new******************)

(*LENB: Lemma is modified - we need to put sp into locBlocksTgt mu*)
Lemma structured_match_callstack_alloc_right:
forall mu cenv m tm cs tf tm' sp le te (WD: SM_wd mu) (SMV: sm_valid mu m tm),
structured_match_callstack mu m tm cs (Mem.nextblock m) (Mem.nextblock tm) ->
Mem.alloc tm 0 tf.(fn_stackspace) = (tm', sp) ->
Mem.inject (as_inj mu) m tm ->
match_temps (restrict (as_inj mu) (vis mu)) le te ->
(forall id, cenv!id = None) ->
structured_match_callstack (alloc_right_sm mu sp) m tm'
(Frame cenv tf empty_env le te sp (Mem.nextblock m) (Mem.nextblock m) :: cs)
(Mem.nextblock m) (Mem.nextblock tm')
/\ SM_wd (alloc_right_sm mu sp) /\ sm_valid (alloc_right_sm mu sp) m tm'.