Section Cat.
Variables (K : choiceType) (V : Type).
Implicit Types (f g : {fmap K -> V}).
Definition catf (f g : {fmap K -> V}) :=
[fmap k : (domf f `\` domf g) `|` domf g=>
match fsetULVR (valP k) with
| inl kfDg => f.[fsubsetP (fsubsetDl _ _) _ kfDg]
| inr kg => g.[kg]
end].
Local Notation "f + g" := (catf f g) : fset_scope.

Lemma getf_catr f g k (kfg : k \in domf (f + g))
(kg : k \in domf g) : (f + g).[kfg] = g.[kg].