(** Now the main hoare rules **)

Lemma hoare_store : forall ps R e1 e2 Q n,
hoare_ ps R
(EX a:addr, EX v:val,
eval e1 (ptr_val a) &&
eval e2 v &&
( (EX vold:val, mapsto a Share.top vold) *
(mapsto a Share.top v -* Q) ))
(store e1 e2)
Q n.