(** Semantics of smart constructors *)
Remark sem_cast_deterministic:
forall v ty ty' m1 v1 m2 v2,
sem_cast v ty ty' m1 = Some v1 ->
sem_cast v ty ty' m2 = Some v2 ->
v1 = v2.

Lemma step_make_set:
forall id a ty m b ofs t v e le f k,
Csem.deref_loc ge ty m b ofs t v ->
eval_lvalue tge e le m a b ofs ->
typeof a = ty ->
step1 tge (State f (make_set id a) k e le m)
t (State f Sskip k e (PTree.set id v le) m).