Module CSHL_Defs := DerivedDefs(CSHL_Def).
(***************** SEMAX_LEMMAS ****************)
(* THIS RULE FROM semax_switch *)
(* THESE RULES FROM semax_straight *)

Axiom semax_set_forward :
forall {CS: compspecs} {Espec: OracleKind},
forall (Delta: tycontext) (P: environ->mpred) id e,
@semax CS Espec Delta
(|> ( (tc_expr Delta e) &&
(tc_temp_id id (typeof e) Delta e) &&
P))
(Sset id e)
(normal_ret_assert
(EX old:val, local (`eq (eval_id id) (subst id (`old) (eval_expr e))) &&
subst id (`old) P)).