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.

Lemma sifthenelse_sound:
forall a s1 s2 s, sifthenelse a s1 s2 = OK s ->
wt_expr ce e a -> wt_stmt ce e rt s1 -> wt_stmt ce e rt s2 -> wt_stmt ce e rt s.