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.
Copyright (C) 2011-2015 Catherine Lelay
Copyright (C) 2011-2015 Guillaume Melquiond
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.
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 n ⇒ Rbar_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 n ⇒ Rbar_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 n ⇒ Rbar_opp (u n))).
Lemma Inf_opp_sup (u : nat → Rbar) :
Inf_seq u = Rbar_opp (Sup_seq (fun n ⇒ Rbar_opp (u n))).
Lemma Sup_seq_scal_l (a : R) (u : nat → Rbar) : 0 ≤ a →
Sup_seq (fun n ⇒ Rbar_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 n ⇒ Rbar_mult a (u n)) = Rbar_mult a (Inf_seq u).
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).
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 m ⇒ Sup_seq (fun n ⇒ u (n + m)%nat)) l.
Lemma is_LimInf_supInf_seq (u : nat → R) (l : Rbar) :
is_LimInf_seq u l ↔ is_sup_seq (fun m ⇒ Inf_seq (fun n ⇒ u (n + m)%nat)) l.
Extensionality
Lemma is_LimSup_seq_ext_loc (u v : nat → R) (l : Rbar) :
eventually (fun n ⇒ u 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 n ⇒ u 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 m ⇒ Sup_seq (fun n ⇒ u (n + m)%nat)).
Lemma LimInf_SupInf_seq (u : nat → R) :
LimInf_seq u = Sup_seq (fun m ⇒ Inf_seq (fun n ⇒ u (n + m)%nat)).
Lemma is_LimSup_LimInf_seq_le (u : nat → R) (ls li : Rbar) :
is_LimSup_seq u ls → is_LimInf_seq u li → Rbar_le li ls.
Lemma LimSup_LimInf_seq_le (u : nat → R) :
Rbar_le (LimInf_seq u) (LimSup_seq u).
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 n ⇒ u n ≤ v n)
→ Rbar_le (LimSup_seq u) (LimSup_seq v).
Lemma LimInf_le (u v : nat → R) :
eventually (fun n ⇒ u 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 n ⇒ a × 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 n ⇒ a × 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 n ⇒ u (S n)) l.
Lemma is_LimInf_seq_ind_1 (u : nat → R) (l : Rbar) :
is_LimInf_seq u l ↔
is_LimInf_seq (fun n ⇒ u (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 n ⇒ u (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 n ⇒ u (n + k)%nat) l.
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 n ⇒ Rabs (u n - l) < eps)
| p_infty ⇒ ∀ M : R, eventually (fun n ⇒ M < u n)
| m_infty ⇒ ∀ M : R, eventually (fun n ⇒ u 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
Lemma is_lim_seq_Reals (u : nat → R) (l : R) :
is_lim_seq u l ↔ Un_cv u l.
Lemma is_lim_seq_p_infty_Reals (u : nat → R) :
is_lim_seq u p_infty ↔ cv_infty u.
Lemma is_lim_LimSup_seq (u : nat → R) (l : Rbar) :
is_lim_seq u l → is_LimSup_seq u l.
Lemma is_lim_LimInf_seq (u : nat → R) (l : Rbar) :
is_lim_seq u l → is_LimInf_seq u l.
Lemma is_LimSup_LimInf_lim_seq (u : nat → R) (l : Rbar) :
is_LimSup_seq u l → is_LimInf_seq u l → is_lim_seq u l.
Lemma ex_lim_LimSup_LimInf_seq (u : nat → R) :
ex_lim_seq u ↔ LimSup_seq u = LimInf_seq u.
Extensionality
Lemma is_lim_seq_ext_loc (u v : nat → R) (l : Rbar) :
eventually (fun n ⇒ u 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 n ⇒ u n = v n) →
ex_lim_seq u → ex_lim_seq v.
Lemma Lim_seq_ext_loc (u v : nat → R) :
eventually (fun n ⇒ u 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
Lemma is_lim_seq_unique (u : nat → R) (l : Rbar) :
is_lim_seq u l → Lim_seq u = l.
Lemma Lim_seq_correct (u : nat → R) :
ex_lim_seq u → is_lim_seq u (Lim_seq u).
Lemma Lim_seq_correct' (u : nat → R) :
ex_finite_lim_seq u → is_lim_seq u (real (Lim_seq u)).
Lemma ex_finite_lim_seq_correct (u : nat → R) :
ex_finite_lim_seq u ↔ ex_lim_seq u ∧ is_finite (Lim_seq u).
Lemma ex_lim_seq_dec (u : nat → R) :
{ex_lim_seq u} + {¬ex_lim_seq u}.
Lemma ex_finite_lim_seq_dec (u : nat → R) :
{ex_finite_lim_seq u} + {¬ ex_finite_lim_seq u}.
Definition ex_lim_seq_cauchy (u : nat → R) :=
∀ eps : posreal, ∃ N : nat, ∀ n m,
(N ≤ n)%nat → (N ≤ m)%nat → Rabs (u n - u m) < eps.
Lemma ex_lim_seq_cauchy_corr (u : nat → R) :
(ex_finite_lim_seq u) ↔ ex_lim_seq_cauchy u.
Lemma is_lim_seq_INR :
is_lim_seq INR p_infty.
Lemma ex_lim_seq_INR :
ex_lim_seq INR.
Lemma Lim_seq_INR :
Lim_seq INR = p_infty.
Constants
Lemma is_lim_seq_const (a : R) :
is_lim_seq (fun n ⇒ a) a.
Lemma ex_lim_seq_const (a : R) :
ex_lim_seq (fun n ⇒ a).
Lemma Lim_seq_const (a : R) :
Lim_seq (fun n ⇒ a) = 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 n ⇒ u (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 n ⇒ u (phi n)).
Lemma Lim_seq_subseq (u : nat → R) (phi : nat → nat) :
filterlim phi eventually eventually →
ex_lim_seq u →
Lim_seq (fun n ⇒ u (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 n ⇒ u (S n)) l.
Lemma ex_lim_seq_incr_1 (u : nat → R) :
ex_lim_seq u ↔ ex_lim_seq (fun n ⇒ u (S n)).
Lemma Lim_seq_incr_1 (u : nat → R) :
Lim_seq (fun n ⇒ u (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 n ⇒ u (n + N)%nat) l.
Lemma ex_lim_seq_incr_n (u : nat → R) (N : nat) :
ex_lim_seq u ↔ ex_lim_seq (fun n ⇒ u (n + N)%nat).
Lemma Lim_seq_incr_n (u : nat → R) (N : nat) :
Lim_seq (fun n ⇒ u (n + N)%nat) = Lim_seq u.
Lemma filterlim_le :
∀ {T F} {FF : ProperFilter' F} (f g : T → R) (lf lg : Rbar),
F (fun x ⇒ f 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 n ⇒ u 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 n ⇒ u 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 x ⇒ f 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 x ⇒ g 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 x ⇒ f 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 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_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 n ⇒ u 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 n ⇒ v 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.
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 z ⇒ fst 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u n - v n) = Rbar_minus (Lim_seq u) (Lim_seq v).
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 z ⇒ fst 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 x ⇒ Rmult 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 n ⇒ a × 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 n ⇒ a × u n).
Lemma Lim_seq_scal_l (u : nat → R) (a : R) :
Lim_seq (fun n ⇒ a × 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 n ⇒ u 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 n ⇒ u n × a).
Lemma Lim_seq_scal_r (u : nat → R) (a : R) :
Lim_seq (fun n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u 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 n ⇒ u n / v n) = Rbar_div (Lim_seq u) (Lim_seq v).
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 n ⇒ v 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 n ⇒ f (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 n ⇒ Rabs (u n)) (Rbar_abs l).
Lemma ex_lim_seq_abs (u : nat → R) :
ex_lim_seq u → ex_lim_seq (fun n ⇒ Rabs (u n)).
Lemma Lim_seq_abs (u : nat → R) :
ex_lim_seq u →
Lim_seq (fun n ⇒ Rabs (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 n ⇒ Rabs (u n)) 0.
Geometric sequences
Lemma is_lim_seq_geom (q : R) :
Rabs q < 1 → is_lim_seq (fun n ⇒ q ^ n) 0.
Lemma ex_lim_seq_geom (q : R) :
Rabs q < 1 → ex_lim_seq (fun n ⇒ q ^ n).
Lemma Lim_seq_geom (q : R) :
Rabs q < 1 → Lim_seq (fun n ⇒ q ^ n) = 0.
Lemma is_lim_seq_geom_p (q : R) :
1 < q → is_lim_seq (fun n ⇒ q ^ n) p_infty.
Lemma ex_lim_seq_geom_p (q : R) :
1 < q → ex_lim_seq (fun n ⇒ q ^ n).
Lemma Lim_seq_geom_p (q : R) :
1 < q → Lim_seq (fun n ⇒ q ^ n) = p_infty.
Lemma ex_lim_seq_geom_m (q : R) :
q ≤ -1 → ¬ ex_lim_seq (fun n ⇒ q ^ n).
Rbar_loc_seq converges