Section DomLemmas.
Variables (K : ordType) (V : Type) (U : union_map_class K V).
Implicit Types (k : K) (v : V) (f g : U).
Variant dom_find_spec k f : bool -> Type :=
| dom_find_none' : find k f = None -> dom_find_spec k f false
| dom_find_some' v : find k f = Some v ->
f = upd k v (free k f) -> dom_find_spec k f true.

Lemma domK f1 f2 g1 g2 :
valid (f1 \+ g1) -> valid (f2 \+ g2) ->
dom (f1 \+ g1) =i dom (f2 \+ g2) ->
dom f1 =i dom f2 -> dom g1 =i dom g2.