Lemma typecheck_both_sound: forall {CS: compspecs} Delta rho m e , typecheck_environ Delta rho -> (denote_tc_assert (typecheck_expr Delta e) rho m -> tc_val (typeof e) (eval_expr e rho)) /\ (forall pt, denote_tc_assert (typecheck_lvalue Delta e) rho m -> is_pointer_type pt = true -> tc_val pt (eval_lvalue e rho)).