Ltac unfold_tc_denote :=
unfold denote_tc_nonzero in *;
unfold isptr in *;
unfold denote_tc_igt in *;
unfold denote_tc_Zle in *;
unfold denote_tc_Zge in *;
unfold denote_tc_samebase in *;
unfold denote_tc_nodivover in *;
unfold denote_tc_initialized in *.

Lemma typecheck_lvalue_sound_Efield: forall {CS: compspecs} Delta rho m e i t pt (H: typecheck_environ Delta rho) (IHe: (denote_tc_assert (typecheck_expr Delta e) rho m -> tc_val (typeof e) (eval_expr e rho)) /\ (forall pt0 : type, denote_tc_assert (typecheck_lvalue Delta e) rho m -> is_pointer_type pt0 = true -> tc_val pt0 (eval_lvalue e rho))) (H0: denote_tc_assert (typecheck_lvalue Delta (Efield e i t)) rho m) (H1: is_pointer_type pt = true), tc_val pt (eval_lvalue (Efield e i t) rho).