(* Lemma by_value_data_at_: forall sh t p, type_is_by_value t = true -> data_at_ sh t p = !! field_compatible t nil p && mapsto_ sh t p. *)
(************************************************  Transformation between data_at and data_at_rec. This is used in transformation between field_at and data_at.  ************************************************)

Lemma memory_block_data_at__aux2: forall i pos t,
0 <= pos /\ pos + sizeof t <= Int.modulus - Int.unsigned i ->
(alignof t | Int.unsigned i) ->
(alignof t | pos) ->
(alignof t | Int.unsigned (Int.add i (Int.repr pos))).