Library prosa.util.bigop

From mathcomp Require Export ssreflect ssrnat ssrbool eqtype fintype bigop seq div ssrfun.

Consider a sequence of unique elements xs, an element x0, and a predicate P := λ x x == x0. Then, any "bigop" over the sequence xs w.r.t. the predicate and a function F is equal to F x0.
Lemma big_pred1_seq :
   [R : Type] [idx : R] [op : Monoid.law idx] [X : eqType] [P : pred X] [F : X R]
    (xs : seq X) (i : X),
    (i \in xs)
    (uniq xs)
    P =1 pred1 i
    \big[op/idx]_(j <- xs | P j) F j = F i.