Definition atomic_loc_hist sh p g R (h : hist) := atomic_loc sh p (hist_R g R) * ghost_hist sh h g.

(* Specifications: *)
Lemma hist_R_precise : forall p R v, precise (EX h : _, R h v) -> precise (hist_R p R v).
Lemma atomic_loc_hist_precise : forall sh p g R, readable_share sh -> precise (EX h : _, atomic_loc_hist sh p g R h).
Lemma hist_R_valid : forall g R v, valid (hist_R g R) v = hist_R g R v.
Lemma add_events_trans : forall h le h' le' h'' (H1 : add_events h le h') (H2 : add_events h' le' h''), add_events h (le ++ le') h''.
Lemma add_events_add : forall h le h', add_events h le h' -> exists h2, h' = h ++ h2 /\ map snd h2 = le.