Definition ret0_tycon (Delta: tycontext): tycontext :=
mk_tycontext (PTree.empty _) (PTree.empty _) (ret_type Delta) (glob_types Delta) (glob_specs Delta) (annotations Delta).
Definition ret1_tycon (Delta: tycontext): tycontext :=
mk_tycontext (PTree.set ret_temp (ret_type Delta) (PTree.empty _))
(PTree.empty _) (ret_type Delta) (glob_types Delta) (glob_specs Delta) (annotations Delta).

Lemma semax_post_ret1: forall P' R' Espec {cs: compspecs} Delta P v R Pre c,
ret_type Delta <> Tvoid ->
ENTAIL (ret1_tycon Delta),
PROPx P' (LOCAL (temp ret_temp v) (SEPx R')) |-- PROPx P (LOCAL (temp ret_temp v) (SEPx R)) ->
@semax cs Espec Delta Pre c
(frame_ret_assert (function_body_ret_assert (ret_type Delta)
(PROPx P' (LOCAL (temp ret_temp v) (SEPx R')))) emp) ->
@semax cs Espec Delta Pre c
(frame_ret_assert (function_body_ret_assert (ret_type Delta)
(PROPx P (LOCAL (temp ret_temp v) (SEPx R)))) emp).