proposition: Lemma umall2Un f1 f2 g1 g2 : Reflexive P -> Transitive P -> valid f1 = valid f2 -> valid g1 = valid g2 -> um_all2 f1 f2 -> um_all2 g1 g2 -> um_all2 (f1 \+ g1) (f2 \+ g2).
proof: Proof. move=>R T Ef Eg Uf Ug; apply: (@umall2_trans T (f2 \+ g1)); by [apply: umall2Unf | apply: umall2fUn]. Qed.
imports: Coq(ssreflect ssrbool ssrfun) mathcomp(ssrnat eqtype seq path bigop) pcm(options prelude finmap seqperm pred seqext) pcm(pcm morphism)