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.