Section Abelian.
Variable op : Monoid.com_law 1.
Local Notation "'*%M'" := op (at level 0).
Local Notation "x * y" := (op x y).

Lemma big_enum_cond (I : finType) (A : {pred I}) (P : pred I) F :
\big[*%M/1]_(i <- enum A | P i) F i = \big[*%M/1]_(i in A | P i) F i.