Local Open Scope logic.
Section SEMAX_SC.
Context {cs: compspecs}.

Lemma semax_SC_set:
forall {Espec: OracleKind},
forall Delta id P Q R (e2: expr) t v,
typeof_temp Delta id = Some t ->
is_neutral_cast (implicit_deref (typeof e2)) t = true ->
ENTAIL Delta, PROPx P (LOCALx Q (SEPx R)) |-- local (`(eq v) (eval_expr e2)) ->
ENTAIL Delta, PROPx P (LOCALx Q (SEPx R)) |--
(tc_expr Delta e2) ->
semax Delta (|>PROPx P (LOCALx Q (SEPx R)))
(Sset id e2)
(normal_ret_assert
(PROPx P
(LOCALx (temp id v :: remove_localdef_temp id Q)
(SEPx R)))).