Opaque combine.

(* It would be nice if we could maintain the invariant that the map has no duplicates and is well-chained, and indeed, the algorithm should maintain these properties. However, the per-slot histories do not obviously present a way to prove this: if a new key has "mysteriously appeared" (i.e., been added by another thread), we don't have a good way of knowing that it's well-chained. *)
(* We can, however, allow for the possibility that there is garbage in the map, and consider the abstract map to be those elements that can be successfully looked up, rather than all pairs in the map. In practice, this *should* come down to the same thing, but how could we prove it? *)
Lemma set_item_trace_map : forall h k v i h' (Hwf : wf_hists h) (Hlenh : Zlength h = size)
(Htrace : set_item_trace h k v i h') (Hk : k <> 0) (Hrepk : repable_signed k) (Hrepv : repable_signed v),
wf_hists h' /\ let m' := make_map (upd_Znth i h' (Znth i h ([], []))) in
map_incl (make_map h) m' /\ set m' k v = Some (make_map h').