Local Open Scope logic.
(******************************************  Basic lemmas about local_facts, isptr, offset_zero  ******************************************)

(* Specifications: *)
Lemma local_facts_isptr: forall P Q (p: val), P p |-- !! Q -> (Q -> isptr p) -> P p = !! (isptr p) && P p.
Lemma local_facts_offset_zero: forall P, (forall p, P p |-- !! isptr p) -> (forall p, P p = P (offset_val 0 p)).
(******************************************  Lemmas about mapsto and mapsto_.  ******************************************)
Lemma mapsto_local_facts:
forall sh t v1 v2,  mapsto sh t v1 v2 |-- !! (isptr v1 /\ tc_val' t v2).
Lemma mapsto__local_facts:
forall sh t v1, mapsto_ sh t v1 |-- !! isptr v1.