proposition: Lemma valid_spliceUn (T : finType) (Us : T -> pcm) (tag : T) (x y : FinProd Us) v : valid (x \+ y) -> valid (v \+ sel tag y) -> valid (splice x tag v \+ y).
proof: Proof. move=>V V'; apply/forallP=>z; rewrite !sel_fin. case: decP=>?; first by subst z; rewrite eqc. by rewrite valid_selUn. Qed.
imports: Coq(ssreflect ssrbool ssrfun) mathcomp(ssrnat eqtype seq bigop fintype finset) pcm(options axioms prelude seqperm pred seqext)