Section GHist.
(* Ghost histories in the style of Nanevsky *)
Context {hist_el : Type}.
Notation hist_part := (nat -> option hist_el).
Definition hist_sub sh (h : hist_part) hr := sh <> Share.bot /\ if eq_dec sh Tsh then h = hr
else map_incl h hr.

Lemma hist_sub_upd : forall sh h hr t' e (Hsub : hist_sub sh h hr),
hist_sub sh (map_upd h t' e) (map_upd hr t' e).