proposition: Lemma bigID (I:eqType) r (a P : pred I) (F : I -> X) : \big[*%M/1]_(i <- r | P i) F i ≡ (\big[*%M/1]_(i <- r | P i && a i) F i) ⊗ (\big[*%M/1]_(i <- r | P i && ~~ a i) F i).
proof: Proof. rewrite !(@big_mkcond _ I r _ F) -big_split. apply: eqv_bigr => i; case: (a i); by rewrite /= ?andbT ?andbF ?monU ?monUl. Qed.
imports: HB(structures) Coq(RelationClasses Morphisms Relation_Definitions) mathcomp(all_ssreflect)