(* um_all *)

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].