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

Axiom semax_store:
forall {CS: compspecs} {Espec: OracleKind},
forall Delta e1 e2 sh P,
writable_share sh ->
@semax CS Espec Delta
(|> ( (tc_lvalue Delta e1) &&  (tc_expr Delta (Ecast e2 (typeof e1)))  &&
(`(mapsto_ sh (typeof e1)) (eval_lvalue e1) * P)))
(Sassign e1 e2)
(normal_ret_assert
(`(mapsto sh (typeof e1)) (eval_lvalue e1) (`force_val (`(sem_cast (typeof e2) (typeof e1)) (eval_expr e2))) * P)).