Local Open Scope logic.
(******************************************  Basic lemmas about local_facts, isptr, offset_zero  ******************************************)
(******************************************  Lemmas about mapsto and mapsto_.  ******************************************)
Hint Resolve mapsto_local_facts mapsto__local_facts : saturate_local.
(******************************************  Lemmas about memory_block  ******************************************)
Hint Rewrite memory_block_zero_Vptr: norm.
Definition size_compatible' (n: Z) (p: val) :=
match p with
| Vundef => True
| Vint _ => True
| Vlong _ => True
| Vfloat _ => True
| Vsingle _ => True
| Vptr _ i_ofs => Ptrofs.unsigned i_ofs + n < Ptrofs.modulus
end.
Hint Resolve memory_block_local_facts : saturate_local.

Lemma mapsto_by_value: forall sh t p v, mapsto sh t p v = !! (type_is_by_value t = true) && mapsto sh t p v.