Section EXTCALL.
Variables F1 F2: meminj.
Variables m1 m2 m1' m2': mem.
Hypothesis MAXPERM: forall b ofs p, Mem.valid_block m1 b -> Mem.perm m2 b ofs Max p -> Mem.perm m1 b ofs Max p.
Hypothesis MAXPERM': forall b ofs p, Mem.valid_block m1' b -> Mem.perm m2' b ofs Max p -> Mem.perm m1' b ofs Max p.
Hypothesis UNCHANGED: Mem.unchanged_on (loc_out_of_reach F1 m1) m1' m2'.
Hypothesis INJ: Mem.inject F1 m1 m1'.
Hypothesis INCR: inject_incr F1 F2.
Hypothesis SEP: inject_separated F1 F2 m1 m1'.
End EXTCALL.
(** Change of context corresponding to an inlined tailcall *)

Lemma match_stacks_inside_inlined_tailcall:
forall fenv F m m' stk stk' f' ctx sp' rs' ctx' f,
match_stacks_inside F m m' stk stk' f' ctx sp' rs' ->
context_below ctx ctx' ->
context_stack_tailcall ctx f ctx' ->
ctx'.(retinfo) = ctx.(retinfo) ->
range_private F m m' sp' ctx.(dstk) f'.(fn_stacksize) ->
tr_funbody fenv f'.(fn_stacksize) ctx' f f'.(fn_code) ->
match_stacks_inside F m m' stk stk' f' ctx' sp' rs'.