(** * D'Alembert criterion *)

(* Specifications: *)
Lemma ex_series_DAlembert (a : nat -> R) (k : R) :
k < 1 -> (forall n, a n <> 0)
-> is_lim_seq (fun n => Rabs (a (S n) / a n)) k
-> ex_series  (fun n => Rabs (a n)).
Lemma not_ex_series_DAlembert (a : nat -> R) (l : R) :
l > 1 -> (forall n, a n <> 0)
-> is_lim_seq (fun n => Rabs (a (S n) / a n)) l
-> ~ is_lim_seq a 0.
Lemma partial_summation_R (a b : nat -> R) :
(exists M, forall n, norm (sum_n b n) <= M)
-> filterlim a eventually (locally 0)
-> ex_series (fun n => norm (minus (a (S n)) (a n)))
-> ex_series (fun n => scal (a n) (b n)).