Corollary hist_list_lt : forall h l, hist_list h l -> newer h (length l).

(* Specifications: *)
Lemma hist_list'_in : forall h l (Hl : hist_list' h l) e, (exists t, h t = Some e) <-> In e l.
Lemma hist_list_weak : forall l h (Hl : hist_list h l), hist_list' h l.
Lemma hist_list'_add : forall h1 h2 (l : list hist_el) (Hdisj : disjoint h1 h2), hist_list' (map_add h1 h2) l -> exists l1 l2, Permutation l (l1 ++ l2) /\ hist_list' h1 l1 /\ hist_list' h2 l2.
Lemma ghost_hist_init : @valid (ref_PCM (@map_disj_PCM nat hist_el)) (Some (Tsh, empty_map), Some empty_map).
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' = map_add h h2 /\ forall t e, h2 t = Some e -> newer h t /\ In e le.