Section Abelian.
Variable op : Monoid.com_law 1.
Local Notation "'*%M'" := op (at level 0).
Local Notation "x * y" := (op x y).
Arguments bigID [I r].
Arguments bigD1 [I] j [P F].
Arguments cardD1x [I A].
Arguments partition_big [I s J P] p Q [F].
Arguments reindex_omap [I J] h h' [P F].
Arguments reindex_onto [I J] h h' [P F].
Arguments reindex [I J] h [P F].
Arguments big_enum_val_cond [I A] P F.
Arguments big_enum_rank_cond [I A x] xA P F.

Lemma sig_big_dep (I : finType) (J : I -> finType)
(P : pred I) (Q : forall {i}, pred (J i)) (F : forall {i}, J i -> R) :
\big[op/idx]_(i | P i) \big[op/idx]_(j : J i | Q j) F j =
\big[op/idx]_(p : {i : I & J i} | P (tag p) && Q (tagged p)) F (tagged p).