Definition weak_mapsto_ sh e rho :=
match (eval_expr e rho) with
| Vptr b o => (mapsto_ sh (typeof e) (Vptr b o)) ||
              (mapsto_ sh (typeof e) (Vptr b o))
| _ => FF
end.

Lemma writable0_lub_retainer_Rsh: forall sh, writable0_share sh -> Share.lub (retainer_part sh) Share.Rsh = sh.