Definition full_hist h v := exists l, hist_list h l /\ apply_hist (vint 0) l = Some (vint v).
Definition full_hist' h v := exists l, hist_list' h l /\ apply_hist (vint 0) l = Some v.

(* Specifications: *)
Lemma full_hist_weak : forall h v (Hl : full_hist h v), full_hist' h (vint v).
Lemma full_hist'_drop : forall h h' v (Hh : full_hist' h v)
(Hh' : incl h' h) (HNoDup : NoDup (map fst h'))
(Hdiff : forall t e, In (t, e) h -> ~In (t, e) h' -> forall v, ~writes e v),
full_hist' h' v.
Lemma full_hist'_nil : forall n l, Forall2 full_hist' (repeat [] n) l -> l = repeat (vint 0) n.
Corollary full_hist_nil' : forall n l (Hfull : Forall2 full_hist' (repeat [] n) (map (fun x => vint x) l))
(Hrep : Forall repable_signed l), l = repeat 0 n.
Corollary full_hist_nil : forall n l (Hfull : Forall2 full_hist (repeat [] n) l)
(Hrep : Forall repable_signed l), l = repeat 0 n.