Section UmpleqLemmas.
Variables (K : ordType) (A : Type) (U : union_map_class K A).
Implicit Types (x y a b : U) (p : pred K).
(* monotonicity lemmas *)
Hint Resolve umpleq_filtI : core.
(* x <= y and subdom *)
(* some/none lemmas *)
(* um_filter *)
(* um_all *)
(* others *)

Lemma cancel2 k1 k2 f1 f2 v1 v2 :
valid (pts k1 v1 \+ f1) ->
pts k1 v1 \+ f1 = pts k2 v2 \+ f2 ->
if k1 == k2 then v1 = v2 /\ f1 = f2
else [/\ free k1 f2 = free k2 f1,
f1 = pts k2 v2 \+ free k1 f2 &
f2 = pts k1 v1 \+ free k2 f1].