Section BigFSet.
Variable (R : Type) (idx : R) (op : Monoid.law idx).
Variable (I : choiceType).

(* Specifications: *)
Lemma big_seq_fsetE (X : {fset I}) (P : pred I) (F : I -> R) :
\big[op/idx]_(i <- X | P i) F i = \big[op/idx]_(x : X | P (val x)) F (val x).
Lemma eq_fbig (A B : {fset I}) (F G : I -> R) :
A =i B -> (forall x, x \in A -> F x = G x) ->
\big[op/idx]_(i <- A) F i = \big[op/idx]_(i <- B) G i.
Lemma eq_fbigl_cond (A B : {fset I}) (P Q : pred I) (F : I -> R) :
[fset x in A | P x] =i [fset x in B | Q x] ->
\big[op/idx]_(i <- A | P i) F i = \big[op/idx]_(i <- B | Q i) F i.
Lemma big_setU1 (a : I) (A : {fset I}) (F : I -> R) : a \notin A ->
\big[op/idx]_(i <- (a |` A)) F i = op (F a) (\big[op/idx]_(i <- A) F i).
Lemma big_fset_incl (A : {fset I}) B F : A `<=` B ->
(forall x, x \in B -> x \notin A -> F x = idx) ->
\big[op/idx]_(x <- A) F x = \big[op/idx]_(x <- B) F x.
Lemma big_imfset key (h : I -> J) (A : finmempred _)
(G : J -> R) : {in A &, injective h} ->
\big[op/idx]_(j <- imfset key h A) G j =
\big[op/idx]_(i <- enum_finmem A) G (h i).