Section SOUNDNESS_CONSTRUCTORS.
Variable ce: composite_env.
Variable e: typenv.
Variable rt: type.
Hint Resolve check_rval_wt check_lval_wt: ty.
Hint Extern 1 (wt_expr _ _ _) => (unfold wt_expr; simpl): ty.
End SOUNDNESS_CONSTRUCTORS.
(** * Subject reduction *)
(** We show that reductions preserve well-typedness *)

Lemma pres_sem_cast:
forall m v2 ty2 v1 ty1, wt_val v1 ty1 -> sem_cast v1 ty1 ty2 m = Some v2 -> wt_val v2 ty2.