Definition series_cv_abs {R : ConstructiveReals} (u : nat -> CRcarrier R)
: CR_cauchy R (CRsum (fun n => CRabs R (u n)))
-> { l : CRcarrier R & series_cv u l }.

(* Specifications: *)
Lemma series_cv_unique :
forall {R : ConstructiveReals} (Un:nat -> CRcarrier R) (l1 l2:CRcarrier R),
series_cv Un l1 -> series_cv Un l2 -> l1 == l2.
Lemma series_cv_abs_eq
: forall {R : ConstructiveReals} (u : nat -> CRcarrier R) (a : CRcarrier R)
(cau : CR_cauchy R (CRsum (fun n => CRabs R (u n)))),
series_cv u a
-> (a == (let (l,_):= series_cv_abs u cau in l))%ConstructiveReals.
Lemma series_cv_abs_cv
: forall {R : ConstructiveReals} (u : nat -> CRcarrier R)
(cau : CR_cauchy R (CRsum (fun n => CRabs R (u n)))),
series_cv u (let (l,_):= series_cv_abs u cau in l).
Lemma series_cv_opp : forall {R : ConstructiveReals}
(s : CRcarrier R) (u : nat -> CRcarrier R),
series_cv u s
-> series_cv (fun n => - u n) (- s).
Lemma series_cv_scale : forall {R : ConstructiveReals}
(a : CRcarrier R) (s : CRcarrier R) (u : nat -> CRcarrier R),
series_cv u s
-> series_cv (fun n => (u n) * a) (s * a).
Lemma series_cv_plus : forall {R : ConstructiveReals}
(u v : nat -> CRcarrier R) (s t : CRcarrier R),
series_cv u s
-> series_cv v t
-> series_cv (fun n => u n + v n) (s + t).
Lemma series_cv_minus : forall {R : ConstructiveReals}
(u v : nat -> CRcarrier R) (s t : CRcarrier R),
series_cv u s
-> series_cv v t
-> series_cv (fun n => u n - v n) (s - t).
Lemma series_cv_nonneg : forall {R : ConstructiveReals}
(u : nat -> CRcarrier R) (s : CRcarrier R),
(forall n:nat, 0 <= u n) -> series_cv u s -> 0 <= s.
Lemma series_cv_eq : forall {R : ConstructiveReals}
(u v : nat -> CRcarrier R) (s : CRcarrier R),
(forall n:nat, u n == v n)
-> series_cv u s
-> series_cv v s.
Lemma series_cv_remainder_maj : forall {R : ConstructiveReals} (u : nat -> CRcarrier R)
(s eps : CRcarrier R)
(N : nat),
series_cv u s
-> 0 < eps
-> (forall n:nat, 0 <= u n)
-> CRabs R (CRsum u N - s) <= eps
-> forall n:nat, CRsum (fun k=> u (N + S k)%nat) n <= eps.
Lemma series_cv_abs_remainder : forall {R : ConstructiveReals} (u : nat -> CRcarrier R)
(s sAbs : CRcarrier R)
(n : nat),
series_cv u s
-> series_cv (fun n => CRabs R (u n)) sAbs
-> CRabs R (CRsum u n - s)
<= sAbs - CRsum (fun n => CRabs R (u n)) n.
Lemma series_cv_triangle : forall {R : ConstructiveReals}
(u : nat -> CRcarrier R) (s sAbs : CRcarrier R),
series_cv u s
-> series_cv (fun n => CRabs R (u n)) sAbs
-> CRabs R s <= sAbs.
Lemma series_cv_shift :
forall {R : ConstructiveReals} (f : nat -> CRcarrier R) k l,
series_cv (fun n => f (S k + n)%nat) l
-> series_cv f (l + CRsum f k).
Lemma series_cv_shift' : forall {R : ConstructiveReals}
(un : nat -> CRcarrier R) (s : CRcarrier R) (shift : nat),
series_cv un s
-> series_cv (fun n => un (n+shift)%nat)
(s - match shift with
| O => 0
| S p => CRsum un p
end).
Lemma CRmorph_sum : forall {R1 R2 : ConstructiveReals}
(f : @ConstructiveRealsMorphism R1 R2)
(un : nat -> CRcarrier R1) (n : nat),
CRmorph f (CRsum un n) ==
CRsum (fun n0 : nat => CRmorph f (un n0)) n.
Lemma CRmorph_INR : forall {R1 R2 : ConstructiveReals}
(f : @ConstructiveRealsMorphism R1 R2)
(n : nat),
CRmorph f (INR n) == INR n.
Lemma CRmorph_series_cv : forall {R1 R2 : ConstructiveReals}
(f : @ConstructiveRealsMorphism R1 R2)
(un : nat -> CRcarrier R1)
(l : CRcarrier R1),
series_cv un l
-> series_cv (fun n => CRmorph f (un n)) (CRmorph f l).