(** * Sequence of functions *)

(** ** Definitions *)

Definition CVS_dom (fn : nat -> R -> R) (D : R -> Prop) :=
  forall x : R, D x -> ex_finite_lim_seq (fun n => fn n x).Definition CVU_dom (fn : nat -> R -> R) (D : R -> Prop) :=
  forall eps : posreal, eventually (fun n => forall x : R,
    D x -> Rabs ((fn n x) - real (Lim_seq (fun n => fn n x))) < eps).Definition CVU_cauchy (fn : nat -> R -> R) (D : R -> Prop) :=
  forall eps : posreal, exists N : nat,
  forall (n m : nat) (x : R), D x -> (N <= n)%nat -> (N <= m)%nat
    -> Rabs (fn n x - fn m x) < eps.

(* Specifications: *)
Lemma CVU_dom_Reals (fn : nat -> R -> R) (f : R -> R) (x : R) (r : posreal) : (forall y, (Boule x r y) -> (Finite (f y)) = Lim_seq (fun n => fn n y)) -> (CVU fn f x r <-> CVU_dom fn (Boule x r)).
Lemma CVU_CVS_dom (fn : nat -> R -> R) (D : R -> Prop) : CVU_dom fn D -> CVS_dom fn D.
Lemma CVU_dom_cauchy (fn : nat -> R -> R) (D : R -> Prop) : CVU_dom fn D <-> CVU_cauchy fn D.
Lemma CVU_dom_include (fn : nat -> R -> R) (D1 D2 : R -> Prop) : (forall y, D2 y -> D1 y) -> CVU_dom fn D1 -> CVU_dom fn D2.