(********)
(* find *)
(********)
Section FindLemmas.
Variables (K : ordType) (V : Type) (U : union_map_class K V).
Implicit Types (k : K) (v : V) (f : U).

Lemma findU k1 k2 v f :
find k1 (upd k2 v f) =
if k1 == k2 then
if cond U k2 && valid f then Some v else None
else if cond U k2 then find k1 f else None.