Definition ghost_hist (sh : share) (h : hist_part) g :=
  own(RA := ref_PCM map_disj_PCM) g (Some (sh, h), None) NoneP.Definition hist_incl (h : hist_part) l := forall t e, h t = Some e -> nth_error l t = Some e.Definition hist_list (h : hist_part) l := forall t e, h t = Some e <-> nth_error l t = Some e.

(* Specifications: *)
Lemma hist_list_inj : forall h l1 l2 (Hl1 : hist_list h l1) (Hl2 : hist_list h l2), l1 = l2.
Lemma hist_next : forall h l (Hlist : hist_list h l), h (length l) = None.