Library mathcomp.analysis.summability

(* mathcomp analysis (c) 2017 Inria and AIST. License: CeCILL-C.              *)
Require Reals.
From mathcomp Require Import all_ssreflect ssralg ssrint ssrnum finmap matrix.
From mathcomp Require Import interval zmodp.
Require Import boolp ereal reals.
Require Import Rstruct classical_sets signed topology normedtype.

Set Implicit Arguments.
Import GRing.Theory Num.Def Num.Theory.

Local Open Scope classical_set_scope.

For Pierre-Yves : definition of sums

From mathcomp Require fintype bigop finmap.

Section totally.

Import fintype bigop finmap.
Local Open Scope fset_scope.
:TODO: when eventually is generalized to any lattice totally can just be replaced by eventually
Definition totally {I : choiceType} : set (set {fset I}) :=
  filter_from setT (fun A[set B | A `<=` B]).

Canonical totally_filter_source {I : choiceType} X :=
  @Filtered.Source X _ {fset I} (fun ff @ totally).

Instance totally_filter {I : choiceType} : ProperFilter (@totally I).

Definition partial_sum {I : choiceType} {R : zmodType}
  (x : I R) (A : {fset I}) : R := \sum_(i : A) x (val i).

Definition sum (I : choiceType) {K : numDomainType} {R : normedModType K}
   (x : I R) : R := lim (partial_sum x).

Definition summable (I : choiceType) {K : realType} {R : normedModType K}
   (x : I R) :=
   \ M \near +oo%R, \ J \near totally,
   (partial_sum (fun i`|x i|) J M)%R.

End totally.