Definition newer (l : hist_part) t := forall t', l t' <> None -> (t' < t)%nat.

Corollary hist_list_lt : forall h l, hist_list h l -> newer h (length l).
Inductive hist_list' : hist_part -> list hist_el -> Prop :=
| hist_list'_nil : hist_list' empty_map []
| hist_list'_snoc : forall h l t e (Hlast : newer h t) (Hrest : hist_list' h l),
hist_list' (map_upd h t e) (l ++ [e]).