Library Coquelicot.Lim_seq

This file is part of the Coquelicot formalization of real analysis in Coq: http://coquelicot.saclay.inria.fr/
Copyright (C) 2011-2015 Sylvie Boldo
Copyright (C) 2011-2015 Catherine Lelay
Copyright (C) 2011-2015 Guillaume Melquiond
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the COPYING file for more details.

Require Import Reals Psatz.
Require Import mathcomp.ssreflect.ssreflect.
Require Import Rcomplements.
Require Import Rbar Lub Markov Hierarchy.

This file describes properties and definitions about limits of real sequences. This includes properties about the predicates is_lim_seq and ex_lim_seq. This file also defines several total functions using the Limited Principle of Omniscience. These total functions on R sequences are Sup_seq, Inf_seq, LimSup_seq, LimInf_seq and of course Lim_seq.

Open Scope R_scope.

Sup and Inf of sequences in Rbar

Definitions


Definition is_sup_seq (u : nat Rbar) (l : Rbar) :=
  match l with
    | Finite l (eps : posreal), ( n, Rbar_lt (u n) (l+eps))
                                        ( n, Rbar_lt (l-eps) (u n))
    | p_infty M : R, n, Rbar_lt M (u n)
    | m_infty M : R, n, Rbar_lt (u n) M
  end.
Definition is_inf_seq (u : nat Rbar) (l : Rbar) :=
  match l with
    | Finite l (eps : posreal), ( n, Rbar_lt (Finite (l-eps)) (u n))
                                        ( n, Rbar_lt (u n) (Finite (l+eps)))
    | p_infty M : R, n, Rbar_lt (Finite M) (u n)
    | m_infty M : R, n, Rbar_lt (u n) (Finite M)
  end.

Equivalent forms

Lemma is_inf_opp_sup_seq (u : nat Rbar) (l : Rbar) :
  is_inf_seq (fun nRbar_opp (u n)) (Rbar_opp l)
   is_sup_seq u l.
Lemma is_sup_opp_inf_seq (u : nat Rbar) (l : Rbar) :
  is_sup_seq (fun nRbar_opp (u n)) (Rbar_opp l)
   is_inf_seq u l.

Lemma is_sup_seq_lub (u : nat Rbar) (l : Rbar) :
  is_sup_seq u l Rbar_is_lub (fun x n, x = u n) l.

Lemma Rbar_is_lub_sup_seq (u : nat Rbar) (l : Rbar) :
  Rbar_is_lub (fun x n, x = u n) l is_sup_seq u l.

Lemma is_inf_seq_glb (u : nat Rbar) (l : Rbar) :
  is_inf_seq u l Rbar_is_glb (fun x n, x = u n) l.
Lemma Rbar_is_glb_inf_seq (u : nat Rbar) (l : Rbar) :
  Rbar_is_glb (fun x n, x = u n) l is_inf_seq u l.

Extensionality

Lemma is_sup_seq_ext (u v : nat Rbar) (l : Rbar) :
  ( n, u n = v n)
   is_sup_seq u l is_sup_seq v l.
Lemma is_inf_seq_ext (u v : nat Rbar) (l : Rbar) :
  ( n, u n = v n)
   is_inf_seq u l is_inf_seq v l.

Existence

Lemma ex_sup_seq (u : nat Rbar) : {l : Rbar | is_sup_seq u l}.

Lemma ex_inf_seq (u : nat Rbar) : {l : Rbar | is_inf_seq u l}.

Notations

Definition Sup_seq (u : nat Rbar) := proj1_sig (ex_sup_seq u).

Definition Inf_seq (u : nat Rbar) := proj1_sig (ex_inf_seq u).

Lemma is_sup_seq_unique (u : nat Rbar) (l : Rbar) :
  is_sup_seq u l Sup_seq u = l.
Lemma Sup_seq_correct (u : nat Rbar) :
  is_sup_seq u (Sup_seq u).
Lemma is_inf_seq_unique (u : nat Rbar) (l : Rbar) :
  is_inf_seq u l Inf_seq u = l.
Lemma Inf_seq_correct (u : nat Rbar) :
  is_inf_seq u (Inf_seq u).

Lemma Sup_seq_ext (u v : nat Rbar) :
  ( n, (u n) = (v n)) Sup_seq u = Sup_seq v.
Lemma Inf_seq_ext (u v : nat Rbar) :
  ( n, (u n) = (v n)) Inf_seq u = Inf_seq v.

Lemma Rbar_sup_eq_lub (u : nat Rbar) :
  Sup_seq u = Rbar_lub (fun x n, x = u n).
Lemma Inf_eq_glb (u : nat Rbar) :
  Inf_seq u = Rbar_glb (fun x n, x = u n).

Lemma Sup_opp_inf (u : nat Rbar) :
  Sup_seq u = Rbar_opp (Inf_seq (fun nRbar_opp (u n))).
Lemma Inf_opp_sup (u : nat Rbar) :
  Inf_seq u = Rbar_opp (Sup_seq (fun nRbar_opp (u n))).

Lemma Sup_seq_scal_l (a : R) (u : nat Rbar) : 0 a
  Sup_seq (fun nRbar_mult a (u n)) = Rbar_mult a (Sup_seq u).
Lemma Inf_seq_scal_l (a : R) (u : nat Rbar) : 0 a
  Inf_seq (fun nRbar_mult a (u n)) = Rbar_mult a (Inf_seq u).

Order


Lemma is_sup_seq_le (u v : nat Rbar) {l1 l2 : Rbar} :
  ( n, Rbar_le (u n) (v n))
   (is_sup_seq u l1) (is_sup_seq v l2) Rbar_le l1 l2.
Lemma is_inf_seq_le (u v : nat Rbar) {l1 l2 : Rbar} :
  ( n, Rbar_le (u n) (v n))
   (is_inf_seq u l1) (is_inf_seq v l2) Rbar_le l1 l2.

Lemma Sup_seq_le (u v : nat Rbar) :
  ( n, Rbar_le (u n) (v n)) Rbar_le (Sup_seq u) (Sup_seq v).
Lemma Inf_seq_le (u v : nat Rbar) :
  ( n, Rbar_le (u n) (v n)) Rbar_le (Inf_seq u) (Inf_seq v).

Lemma Inf_le_sup (u : nat Rbar) : Rbar_le (Inf_seq u) (Sup_seq u).

Lemma is_sup_seq_major (u : nat Rbar) (l : Rbar) (n : nat) :
  is_sup_seq u l Rbar_le (u n) l.

Lemma Sup_seq_minor_lt (u : nat Rbar) (M : R) :
  Rbar_lt M (Sup_seq u) n, Rbar_lt M (u n).
Lemma Sup_seq_minor_le (u : nat Rbar) (M : R) (n : nat) :
  Rbar_le M (u n) Rbar_le M (Sup_seq u).

LimSup and LimInf of sequences

Definitions


Definition is_LimSup_seq (u : nat R) (l : Rbar) :=
  match l with
    | Finite l eps : posreal,
        ( N : nat, n : nat, (N n)%nat l - eps < u n)
         ( N : nat, n : nat, (N n)%nat u n < l + eps)
    | p_infty M : R, ( N : nat, n : nat, (N n)%nat M < u n)
    | m_infty M : R, ( N : nat, n : nat, (N n)%nat u n < M)
  end.

Definition is_LimInf_seq (u : nat R) (l : Rbar) :=
  match l with
    | Finite l eps : posreal,
        ( N : nat, n : nat, (N n)%nat u n < l + eps)
         ( N : nat, n : nat, (N n)%nat l - eps < u n)
    | p_infty M : R, ( N : nat, n : nat, (N n)%nat M < u n)
    | m_infty M : R, ( N : nat, n : nat, (N n)%nat u n < M)
  end.

Equivalent forms

Lemma is_LimInf_opp_LimSup_seq (u : nat R) (l : Rbar) :
  is_LimInf_seq (fun n- u n) (Rbar_opp l)
     is_LimSup_seq u l.
Lemma is_LimSup_opp_LimInf_seq (u : nat R) (l : Rbar) :
  is_LimSup_seq (fun n- u n) (Rbar_opp l)
     is_LimInf_seq u l.

Lemma is_LimSup_infSup_seq (u : nat R) (l : Rbar) :
  is_LimSup_seq u l is_inf_seq (fun mSup_seq (fun nu (n + m)%nat)) l.
Lemma is_LimInf_supInf_seq (u : nat R) (l : Rbar) :
  is_LimInf_seq u l is_sup_seq (fun mInf_seq (fun nu (n + m)%nat)) l.

Extensionality

Lemma is_LimSup_seq_ext_loc (u v : nat R) (l : Rbar) :
  eventually (fun nu n = v n)
  is_LimSup_seq u l is_LimSup_seq v l.
Lemma is_LimSup_seq_ext (u v : nat R) (l : Rbar) :
  ( n, u n = v n)
   is_LimSup_seq u l is_LimSup_seq v l.

Lemma is_LimInf_seq_ext_loc (u v : nat R) (l : Rbar) :
  eventually (fun nu n = v n)
  is_LimInf_seq u l is_LimInf_seq v l.
Lemma is_LimInf_seq_ext (u v : nat R) (l : Rbar) :
  ( n, u n = v n)
   is_LimInf_seq u l is_LimInf_seq v l.

Existence

Lemma ex_LimSup_seq (u : nat R) :
  {l : Rbar | is_LimSup_seq u l}.
Lemma ex_LimInf_seq (u : nat R) :
  {l : Rbar | is_LimInf_seq u l}.

Functions

Definition LimSup_seq (u : nat R) :=
  proj1_sig (ex_LimSup_seq u).
Definition LimInf_seq (u : nat R) :=
  proj1_sig (ex_LimInf_seq u).

Uniqueness

Lemma is_LimSup_seq_unique (u : nat R) (l : Rbar) :
  is_LimSup_seq u l LimSup_seq u = l.
Lemma is_LimInf_seq_unique (u : nat R) (l : Rbar) :
  is_LimInf_seq u l LimInf_seq u = l.

Lemma LimSup_InfSup_seq (u : nat R) :
  LimSup_seq u = Inf_seq (fun mSup_seq (fun nu (n + m)%nat)).
Lemma LimInf_SupInf_seq (u : nat R) :
  LimInf_seq u = Sup_seq (fun mInf_seq (fun nu (n + m)%nat)).

Operations and order

Constant

Lemma is_LimSup_seq_const (a : R) :
  is_LimSup_seq (fun _a) a.
Lemma LimSup_seq_const (a : R) :
  LimSup_seq (fun _a) = a.

Lemma is_LimInf_seq_const (a : R) :
  is_LimInf_seq (fun _a) a.
Lemma LimInf_seq_const (a : R) :
  LimInf_seq (fun _a) = a.

Opposite

Lemma LimSup_seq_opp (u : nat R) :
  LimSup_seq (fun n- u n) = Rbar_opp (LimInf_seq u).
Lemma LimInf_seq_opp (u : nat R) :
  LimInf_seq (fun n- u n) = Rbar_opp (LimSup_seq u).

Rbar_le

Lemma LimSup_le (u v : nat R) :
  eventually (fun nu n v n)
   Rbar_le (LimSup_seq u) (LimSup_seq v).
Lemma LimInf_le (u v : nat R) :
  eventually (fun nu n v n)
   Rbar_le (LimInf_seq u) (LimInf_seq v).

Scalar multplication

Lemma is_LimSup_seq_scal_pos (a : R) (u : nat R) (l : Rbar) :
  (0 < a) is_LimSup_seq u l
    is_LimSup_seq (fun na × u n) (Rbar_mult a l).
Lemma is_LimInf_seq_scal_pos (a : R) (u : nat R) (l : Rbar) :
  (0 < a) is_LimInf_seq u l
    is_LimInf_seq (fun na × u n) (Rbar_mult a l).

Index shifting

Lemma is_LimSup_seq_ind_1 (u : nat R) (l : Rbar) :
  is_LimSup_seq u l
    is_LimSup_seq (fun nu (S n)) l.
Lemma is_LimInf_seq_ind_1 (u : nat R) (l : Rbar) :
  is_LimInf_seq u l
    is_LimInf_seq (fun nu (S n)) l.

Lemma is_LimSup_seq_ind_k (u : nat R) (k : nat) (l : Rbar) :
  is_LimSup_seq u l
    is_LimSup_seq (fun nu (n + k)%nat) l.
Lemma is_LimInf_seq_ind_k (u : nat R) (k : nat) (l : Rbar) :
  is_LimInf_seq u l
    is_LimInf_seq (fun nu (n + k)%nat) l.

Limit of sequences

Definition


Definition is_lim_seq (u : nat R) (l : Rbar) :=
  filterlim u eventually (Rbar_locally l).

Definition is_lim_seq' (u : nat R) (l : Rbar) :=
  match l with
    | Finite l eps : posreal, eventually (fun nRabs (u n - l) < eps)
    | p_infty M : R, eventually (fun nM < u n)
    | m_infty M : R, eventually (fun nu n < M)
  end.
Definition ex_lim_seq (u : nat R) :=
   l, is_lim_seq u l.
Definition ex_finite_lim_seq (u : nat R) :=
   l : R, is_lim_seq u l.
Definition Lim_seq (u : nat R) : Rbar :=
  Rbar_div_pos (Rbar_plus (LimSup_seq u) (LimInf_seq u))
    {| pos := 2; cond_pos := Rlt_R0_R2 |}.

Lemma is_lim_seq_spec :
   u l,
  is_lim_seq' u l is_lim_seq u l.

Equivalence with standard library Reals
Extensionality

Lemma is_lim_seq_ext_loc (u v : nat R) (l : Rbar) :
  eventually (fun nu n = v n)
  is_lim_seq u l is_lim_seq v l.
Lemma ex_lim_seq_ext_loc (u v : nat R) :
  eventually (fun nu n = v n)
  ex_lim_seq u ex_lim_seq v.
Lemma Lim_seq_ext_loc (u v : nat R) :
  eventually (fun nu n = v n)
  Lim_seq u = Lim_seq v.

Lemma is_lim_seq_ext (u v : nat R) (l : Rbar) :
  ( n, u n = v n) is_lim_seq u l is_lim_seq v l.
Lemma ex_lim_seq_ext (u v : nat R) :
  ( n, u n = v n) ex_lim_seq u ex_lim_seq v.
Lemma Lim_seq_ext (u v : nat R) :
  ( n, u n = v n)
  Lim_seq u = Lim_seq v.

Unicity

Arithmetic operations and order

Identity
Constants

Lemma is_lim_seq_const (a : R) :
  is_lim_seq (fun na) a.
Lemma ex_lim_seq_const (a : R) :
  ex_lim_seq (fun na).
Lemma Lim_seq_const (a : R) :
  Lim_seq (fun na) = a.

Subsequences

Lemma eventually_subseq_loc :
   phi,
  eventually (fun n ⇒ (phi n < phi (S n))%nat)
  filterlim phi eventually eventually.
Lemma eventually_subseq :
   phi,
  ( n, (phi n < phi (S n))%nat)
  filterlim phi eventually eventually.

Lemma is_lim_seq_subseq (u : nat R) (l : Rbar) (phi : nat nat) :
  filterlim phi eventually eventually
  is_lim_seq u l
  is_lim_seq (fun nu (phi n)) l.
Lemma ex_lim_seq_subseq (u : nat R) (phi : nat nat) :
  filterlim phi eventually eventually
  ex_lim_seq u
  ex_lim_seq (fun nu (phi n)).
Lemma Lim_seq_subseq (u : nat R) (phi : nat nat) :
  filterlim phi eventually eventually
  ex_lim_seq u
  Lim_seq (fun nu (phi n)) = Lim_seq u.

Lemma is_lim_seq_incr_1 (u : nat R) (l : Rbar) :
  is_lim_seq u l is_lim_seq (fun nu (S n)) l.
Lemma ex_lim_seq_incr_1 (u : nat R) :
  ex_lim_seq u ex_lim_seq (fun nu (S n)).
Lemma Lim_seq_incr_1 (u : nat R) :
  Lim_seq (fun nu (S n)) = Lim_seq u.

Lemma is_lim_seq_incr_n (u : nat R) (N : nat) (l : Rbar) :
  is_lim_seq u l is_lim_seq (fun nu (n + N)%nat) l.
Lemma ex_lim_seq_incr_n (u : nat R) (N : nat) :
  ex_lim_seq u ex_lim_seq (fun nu (n + N)%nat).
Lemma Lim_seq_incr_n (u : nat R) (N : nat) :
  Lim_seq (fun nu (n + N)%nat) = Lim_seq u.

Order


Lemma filterlim_le :
   {T F} {FF : ProperFilter' F} (f g : T R) (lf lg : Rbar),
  F (fun xf x g x)
  filterlim f F (Rbar_locally lf)
  filterlim g F (Rbar_locally lg)
  Rbar_le lf lg.

Lemma is_lim_seq_le_loc (u v : nat R) (l1 l2 : Rbar) :
  eventually (fun nu n v n)
  is_lim_seq u l1 is_lim_seq v l2
  Rbar_le l1 l2.
Lemma Lim_seq_le_loc (u v : nat R) :
  eventually (fun nu n v n)
  Rbar_le (Lim_seq u) (Lim_seq v).

Lemma is_lim_seq_le (u v : nat R) (l1 l2 : Rbar) :
  ( n, u n v n) is_lim_seq u l1 is_lim_seq v l2 Rbar_le l1 l2.

Lemma filterlim_ge_p_infty :
   {T F} {FF : Filter F} (f g : T R),
  F (fun xf x g x)
  filterlim f F (Rbar_locally p_infty)
  filterlim g F (Rbar_locally p_infty).

Lemma filterlim_le_m_infty :
   {T F} {FF : Filter F} (f g : T R),
  F (fun xg x f x)
  filterlim f F (Rbar_locally m_infty)
  filterlim g F (Rbar_locally m_infty).

Lemma filterlim_le_le :
   {T F} {FF : Filter F} (f g h : T R) (l : Rbar),
  F (fun xf x g x h x)
  filterlim f F (Rbar_locally l)
  filterlim h F (Rbar_locally l)
  filterlim g F (Rbar_locally l).

Lemma is_lim_seq_le_le_loc (u v w : nat R) (l : Rbar) :
  eventually (fun nu n v n w n) is_lim_seq u l is_lim_seq w l is_lim_seq v l.

Lemma is_lim_seq_le_le (u v w : nat R) (l : Rbar) :
  ( n, u n v n w n) is_lim_seq u l is_lim_seq w l is_lim_seq v l.

Lemma is_lim_seq_le_p_loc (u v : nat R) :
  eventually (fun nu n v n)
  is_lim_seq u p_infty
  is_lim_seq v p_infty.

Lemma is_lim_seq_le_m_loc (u v : nat R) :
  eventually (fun nv n u n)
  is_lim_seq u m_infty
  is_lim_seq v m_infty.

Lemma is_lim_seq_decr_compare (u : nat R) (l : R) :
  is_lim_seq u l
   ( n, (u (S n)) (u n))
   n, l u n.
Lemma is_lim_seq_incr_compare (u : nat R) (l : R) :
  is_lim_seq u l
   ( n, (u n) (u (S n)))
   n, u n l.

Lemma ex_lim_seq_decr (u : nat R) :
  ( n, (u (S n)) (u n))
     ex_lim_seq u.
Lemma ex_lim_seq_incr (u : nat R) :
  ( n, (u n) (u (S n)))
     ex_lim_seq u.

Lemma ex_finite_lim_seq_decr (u : nat R) (M : R) :
  ( n, (u (S n)) (u n)) ( n, M u n)
     ex_finite_lim_seq u.
Lemma ex_finite_lim_seq_incr (u : nat R) (M : R) :
  ( n, (u n) (u (S n))) ( n, u n M)
     ex_finite_lim_seq u.

Additive operators

Opposite

Lemma filterlim_Rbar_opp :
   x,
  filterlim Ropp (Rbar_locally x) (Rbar_locally (Rbar_opp x)).

Lemma is_lim_seq_opp (u : nat R) (l : Rbar) :
  is_lim_seq u l is_lim_seq (fun n-u n) (Rbar_opp l).

Lemma ex_lim_seq_opp (u : nat R) :
  ex_lim_seq u ex_lim_seq (fun n-u n).

Lemma Lim_seq_opp (u : nat R) :
  Lim_seq (fun n- u n) = Rbar_opp (Lim_seq u).

Addition

Lemma filterlim_Rbar_plus :
   x y z,
  is_Rbar_plus x y z
  filterlim (fun zfst z + snd z) (filter_prod (Rbar_locally x) (Rbar_locally y)) (Rbar_locally z).

Lemma is_lim_seq_plus (u v : nat R) (l1 l2 l : Rbar) :
  is_lim_seq u l1 is_lim_seq v l2
  is_Rbar_plus l1 l2 l
  is_lim_seq (fun nu n + v n) l.
Lemma is_lim_seq_plus' (u v : nat R) (l1 l2 : R) :
  is_lim_seq u l1 is_lim_seq v l2
  is_lim_seq (fun nu n + v n) (l1 + l2).

Lemma ex_lim_seq_plus (u v : nat R) :
  ex_lim_seq u ex_lim_seq v
  ex_Rbar_plus (Lim_seq u) (Lim_seq v)
  ex_lim_seq (fun nu n + v n).

Lemma Lim_seq_plus (u v : nat R) :
  ex_lim_seq u ex_lim_seq v
  ex_Rbar_plus (Lim_seq u) (Lim_seq v)
  Lim_seq (fun nu n + v n) = Rbar_plus (Lim_seq u) (Lim_seq v).

Subtraction

Lemma is_lim_seq_minus (u v : nat R) (l1 l2 l : Rbar) :
  is_lim_seq u l1 is_lim_seq v l2
  is_Rbar_minus l1 l2 l
  is_lim_seq (fun nu n - v n) l.
Lemma is_lim_seq_minus' (u v : nat R) (l1 l2 : R) :
  is_lim_seq u l1 is_lim_seq v l2
  is_lim_seq (fun nu n - v n) (l1 - l2).

Lemma ex_lim_seq_minus (u v : nat R) :
  ex_lim_seq u ex_lim_seq v
  ex_Rbar_minus (Lim_seq u) (Lim_seq v)
  ex_lim_seq (fun nu n - v n).

Lemma Lim_seq_minus (u v : nat R) :
  ex_lim_seq u ex_lim_seq v
  ex_Rbar_minus (Lim_seq u) (Lim_seq v)
  Lim_seq (fun nu n - v n) = Rbar_minus (Lim_seq u) (Lim_seq v).

Multiplicative operators

Inverse

Lemma filterlim_Rbar_inv :
   l : Rbar, l 0
  filterlim Rinv (Rbar_locally l) (Rbar_locally (Rbar_inv l)).

Lemma is_lim_seq_inv (u : nat R) (l : Rbar) :
  is_lim_seq u l l 0
  is_lim_seq (fun n/ u n) (Rbar_inv l).

Lemma ex_lim_seq_inv (u : nat R) :
  ex_lim_seq u
   Lim_seq u 0
     ex_lim_seq (fun n/ u n).

Lemma Lim_seq_inv (u : nat R) :
  ex_lim_seq u (Lim_seq u 0)
     Lim_seq (fun n/ u n) = Rbar_inv (Lim_seq u).

Multiplication

Lemma filterlim_Rbar_mult :
   x y z,
  is_Rbar_mult x y z
  filterlim (fun zfst z × snd z) (filter_prod (Rbar_locally x) (Rbar_locally y)) (Rbar_locally z).

Lemma is_lim_seq_mult (u v : nat R) (l1 l2 l : Rbar) :
  is_lim_seq u l1 is_lim_seq v l2
  is_Rbar_mult l1 l2 l
  is_lim_seq (fun nu n × v n) l.
Lemma is_lim_seq_mult' (u v : nat R) (l1 l2 : R) :
  is_lim_seq u l1 is_lim_seq v l2
  is_lim_seq (fun nu n × v n) (l1 × l2).

Lemma ex_lim_seq_mult (u v : nat R) :
  ex_lim_seq u ex_lim_seq v
  ex_Rbar_mult (Lim_seq u) (Lim_seq v)
  ex_lim_seq (fun nu n × v n).

Lemma Lim_seq_mult (u v : nat R) :
  ex_lim_seq u ex_lim_seq v
  ex_Rbar_mult (Lim_seq u) (Lim_seq v)
  Lim_seq (fun nu n × v n) = Rbar_mult (Lim_seq u) (Lim_seq v).

Multiplication by a scalar

Lemma filterlim_Rbar_mult_l :
   (a : R) (l : Rbar),
  filterlim (Rmult a) (Rbar_locally l) (Rbar_locally (Rbar_mult a l)).

Lemma filterlim_Rbar_mult_r :
   (a : R) (l : Rbar),
  filterlim (fun xRmult x a) (Rbar_locally l) (Rbar_locally (Rbar_mult l a)).

Lemma is_lim_seq_scal_l (u : nat R) (a : R) (lu : Rbar) :
  is_lim_seq u lu
  is_lim_seq (fun na × u n) (Rbar_mult a lu).

Lemma ex_lim_seq_scal_l (u : nat R) (a : R) :
  ex_lim_seq u ex_lim_seq (fun na × u n).

Lemma Lim_seq_scal_l (u : nat R) (a : R) :
  Lim_seq (fun na × u n) = Rbar_mult a (Lim_seq u).

Lemma is_lim_seq_scal_r (u : nat R) (a : R) (lu : Rbar) :
  is_lim_seq u lu
    is_lim_seq (fun nu n × a) (Rbar_mult lu a).

Lemma ex_lim_seq_scal_r (u : nat R) (a : R) :
  ex_lim_seq u ex_lim_seq (fun nu n × a).

Lemma Lim_seq_scal_r (u : nat R) (a : R) :
  Lim_seq (fun nu n × a) = Rbar_mult (Lim_seq u) a.

Division

Lemma is_lim_seq_div (u v : nat R) (l1 l2 l : Rbar) :
  is_lim_seq u l1 is_lim_seq v l2 l2 0
  is_Rbar_div l1 l2 l
  is_lim_seq (fun nu n / v n) l.
Lemma is_lim_seq_div' (u v : nat R) (l1 l2 : R) :
  is_lim_seq u l1 is_lim_seq v l2 l2 0
  is_lim_seq (fun nu n / v n) (l1 / l2).
Lemma ex_lim_seq_div (u v : nat R) :
  ex_lim_seq u ex_lim_seq v Lim_seq v 0
  ex_Rbar_div (Lim_seq u) (Lim_seq v)
  ex_lim_seq (fun nu n / v n).
Lemma Lim_seq_div (u v : nat R) :
  ex_lim_seq u ex_lim_seq v (Lim_seq v 0)
  ex_Rbar_div (Lim_seq u) (Lim_seq v)
  Lim_seq (fun nu n / v n) = Rbar_div (Lim_seq u) (Lim_seq v).

Additional limits


Lemma ex_lim_seq_adj (u v : nat R) :
  ( n, u n u (S n)) ( n, v (S n) v n)
   is_lim_seq (fun nv n - u n) 0
   ex_finite_lim_seq u ex_finite_lim_seq v Lim_seq u = Lim_seq v.

Image by a continuous function

Lemma is_lim_seq_continuous (f : R R) (u : nat R) (l : R) :
  continuity_pt f l is_lim_seq u l
   is_lim_seq (fun nf (u n)) (f l).

Absolute value

Lemma filterlim_Rabs :
   l : Rbar,
  filterlim Rabs (Rbar_locally l) (Rbar_locally (Rbar_abs l)).

Lemma is_lim_seq_abs (u : nat R) (l : Rbar) :
  is_lim_seq u l is_lim_seq (fun nRabs (u n)) (Rbar_abs l).
Lemma ex_lim_seq_abs (u : nat R) :
  ex_lim_seq u ex_lim_seq (fun nRabs (u n)).
Lemma Lim_seq_abs (u : nat R) :
  ex_lim_seq u
  Lim_seq (fun nRabs (u n)) = Rbar_abs (Lim_seq u).

Lemma is_lim_seq_abs_0 (u : nat R) :
  is_lim_seq u 0 is_lim_seq (fun nRabs (u n)) 0.

Geometric sequences

Lemma is_lim_seq_geom (q : R) :
  Rabs q < 1 is_lim_seq (fun nq ^ n) 0.
Lemma ex_lim_seq_geom (q : R) :
  Rabs q < 1 ex_lim_seq (fun nq ^ n).
Lemma Lim_seq_geom (q : R) :
  Rabs q < 1 Lim_seq (fun nq ^ n) = 0.

Lemma is_lim_seq_geom_p (q : R) :
  1 < q is_lim_seq (fun nq ^ n) p_infty.
Lemma ex_lim_seq_geom_p (q : R) :
  1 < q ex_lim_seq (fun nq ^ n).
Lemma Lim_seq_geom_p (q : R) :
  1 < q Lim_seq (fun nq ^ n) = p_infty.

Lemma ex_lim_seq_geom_m (q : R) :
  q -1 ¬ ex_lim_seq (fun nq ^ n).

Rbar_loc_seq converges