(* Lemma field_at_field_at: forall sh t gfs0 gfs1 v v' p, legal_alignas_type t = true -> JMeq v v' -> field_at sh t (gfs1 ++ gfs0) v p = (!! (size_compatible t p)) && (!! (align_compatible t p)) && (!! (legal_nested_field t (gfs1 ++ gfs0))) && at_offset' (field_at sh (nested_field_type2 t gfs0) gfs1 v') (nested_field_offset2 t gfs0) p. *)

Lemma var_block_data_at_:
forall  sh id t,
complete_legal_cosu_type t = true ->
Z.ltb (sizeof t) Ptrofs.modulus = true ->
is_aligned cenv_cs ha_env_cs la_env_cs t 0 = true ->
readable_share sh ->
var_block sh (id, t) = `(data_at_ sh t) (eval_lvar id t).