Definition memory_block (sh: share) (n: Z) (v: val) : mpred :=
match v with
| Vptr b ofs => (!!(Ptrofs.unsigned ofs + n < Ptrofs.modulus)) && memory_block' sh (nat_of_Z n) b (Ptrofs.unsigned ofs)
| _ => FF
end.

Lemma mapsto__exp_address_mapsto: forall sh t b i_ofs ch,
access_mode t = By_value ch ->
type_is_volatile t = false ->
readable_share sh ->
mapsto_ sh t (Vptr b i_ofs) = EX  v2' : val,
address_mapsto ch v2' sh (b, (Ptrofs.unsigned i_ofs)).