Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 340fa14

Browse files
urkudmergify[bot]
authored andcommitted
feat(analysis/specific_limits): add a few more limits (#1832)
* feat(analysis/specific_limits): add a few more limits * Drop 1 lemma, generalize two others. * Rename `tendsto_inverse_at_top_nhds_0`, fix compile
1 parent 0a9a1ff commit 340fa14

File tree

4 files changed

+35
-17
lines changed

4 files changed

+35
-17
lines changed

src/analysis/calculus/tangent_cone.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ lemma tangent_cone_at.lim_zero {α : Type*} (l : filter α) {c : α → 𝕜} {d
9595
(hc : tendsto (λn, ∥c n∥) l at_top) (hd : tendsto (λn, c n • d n) l (𝓝 y)) :
9696
tendsto d l (𝓝 0) :=
9797
begin
98-
have A : tendsto (λn, ∥c n∥⁻¹) l (𝓝 0) :=
99-
tendsto_inverse_at_top_nhds_0.comp hc,
98+
have A : tendsto (λn, ∥c n∥⁻¹) l (𝓝 0) := tendsto_inv_at_top_zero.comp hc,
10099
have B : tendsto (λn, ∥c n • d n∥) l (𝓝 ∥y∥) :=
101100
(continuous_norm.tendsto _).comp hd,
102101
have C : tendsto (λn, ∥c n∥⁻¹ * ∥c n • d n∥) l (𝓝 (0 * ∥y∥)) := A.mul B,

src/analysis/complex/exponential.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1832,7 +1832,7 @@ end
18321832
/-- The real exponential function tends to 0 at -infinity or, equivalently, `exp(-x)` tends to `0`
18331833
at +infinity -/
18341834
lemma tendsto_exp_neg_at_top_nhds_0 : tendsto (λx, exp (-x)) at_top (𝓝 0) :=
1835-
(tendsto.comp tendsto_inverse_at_top_nhds_0 (tendsto_exp_at_top)).congr (λx, (exp_neg x).symm)
1835+
(tendsto_inv_at_top_zero.comp (tendsto_exp_at_top)).congr (λx, (exp_neg x).symm)
18361836

18371837
/-- The function `exp(x)/x^n` tends to +infinity at +infinity, for any natural number `n` -/
18381838
lemma tendsto_exp_div_pow_at_top (n : ℕ) : tendsto (λx, exp x / x^n) at_top at_top :=
@@ -1870,7 +1870,7 @@ end
18701870

18711871
/-- The function `x^n * exp(-x)` tends to `0` at +infinity, for any natural number `n`. -/
18721872
lemma tendsto_pow_mul_exp_neg_at_top_nhds_0 (n : ℕ) : tendsto (λx, x^n * exp (-x)) at_top (𝓝 0) :=
1873-
(tendsto_inverse_at_top_nhds_0.comp (tendsto_exp_div_pow_at_top n)).congr $ λx,
1873+
(tendsto_inv_at_top_zero.comp (tendsto_exp_div_pow_at_top n)).congr $ λx,
18741874
by rw [function.comp_app, inv_eq_one_div, div_div_eq_mul_div, one_mul, div_eq_mul_inv, exp_neg]
18751875

18761876
end exp

src/analysis/specific_limits.lean

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ open classical function lattice filter finset metric
1515

1616
variables {α : Type*} {β : Type*} {ι : Type*}
1717

18+
lemma tendsto_norm_at_top_at_top : tendsto (norm : ℝ → ℝ) at_top at_top :=
19+
tendsto_abs_at_top_at_top
20+
1821
/-- If a function tends to infinity along a filter, then this function multiplied by a positive
1922
constant (on the left) also tends to infinity. The archimedean assumption is convenient to get a
2023
statement that works on `ℕ`, `ℤ` and `ℝ`, although not necessary (a version in ordered fields is
@@ -94,6 +97,23 @@ begin
9497
end
9598
end
9699

100+
/-- The function `r ↦ r⁻¹` tends to `0` on the right as `r → +∞`. -/
101+
lemma tendsto_inv_at_top_zero' [discrete_linear_ordered_field α] [topological_space α]
102+
[orderable_topology α] : tendsto (λr:α, r⁻¹) at_top (nhds_within (0 : α) (set.Ioi 0)) :=
103+
begin
104+
assume s hs,
105+
rw mem_nhds_within_Ioi_iff_exists_Ioc_subset at hs,
106+
rcases hs with ⟨C, C0, hC⟩,
107+
change 0 < C at C0,
108+
refine filter.mem_map.2 (mem_sets_of_superset (mem_at_top C⁻¹) (λ x hx, hC _)),
109+
have : 0 < x, from lt_of_lt_of_le (inv_pos C0) hx,
110+
exact ⟨inv_pos this, (inv_le C0 this).1 hx⟩
111+
end
112+
113+
lemma tendsto_inv_at_top_zero [discrete_linear_ordered_field α] [topological_space α]
114+
[orderable_topology α] : tendsto (λr:α, r⁻¹) at_top (𝓝 0) :=
115+
tendsto_le_right inf_le_left tendsto_inv_at_top_zero'
116+
97117
lemma summable_of_absolute_convergence_real {f : ℕ → ℝ} :
98118
(∃r, tendsto (λn, (range n).sum (λi, abs (f i))) at_top (𝓝 r)) → summable f
99119
| ⟨r, hr⟩ :=
@@ -110,25 +130,21 @@ lemma tendsto_pow_at_top_at_top_of_gt_1 {r : ℝ} (h : 1 < r) :
110130
⟨n, λ m hnm, le_of_lt $
111131
lt_of_lt_of_le hn (pow_le_pow (le_of_lt h) hnm)⟩
112132

113-
lemma tendsto_inverse_at_top_nhds_0 : tendsto (λr:ℝ, r⁻¹) at_top (𝓝 0) :=
114-
tendsto_orderable_unbounded (no_top 0) (no_bot 0) $ assume l u hl hu,
115-
mem_at_top_sets.mpr ⟨u⁻¹ + 1, assume b hb,
116-
have u⁻¹ < b, from lt_of_lt_of_le (lt_add_of_pos_right _ zero_lt_one) hb,
117-
⟨lt_trans hl $ inv_pos $ lt_trans (inv_pos hu) this,
118-
lt_of_one_div_lt_one_div hu $
119-
begin
120-
rw [inv_eq_one_div],
121-
simp [-one_div_eq_inv, div_div_eq_mul_div, div_one],
122-
simp [this]
123-
end⟩⟩
133+
lemma lim_norm_zero' {𝕜 : Type*} [normed_group 𝕜] :
134+
tendsto (norm : 𝕜 → ℝ) (nhds_within 0 {x | x ≠ 0}) (nhds_within 0 (set.Ioi 0)) :=
135+
lim_norm_zero.inf $ tendsto_principal_principal.2 $ λ x hx, (norm_pos_iff _).2 hx
136+
137+
lemma normed_field.tendsto_norm_inverse_nhds_within_0_at_top {𝕜 : Type*} [normed_field 𝕜] :
138+
tendsto (λ x:𝕜, ∥x⁻¹∥) (nhds_within 0 {x | x ≠ 0}) at_top :=
139+
(tendsto_inv_zero_at_top.comp lim_norm_zero').congr $ λ x, (normed_field.norm_inv x).symm
124140

125141
lemma tendsto_pow_at_top_nhds_0_of_lt_1 {r : ℝ} (h₁ : 0 ≤ r) (h₂ : r < 1) :
126142
tendsto (λn:ℕ, r^n) at_top (𝓝 0) :=
127143
by_cases
128144
(assume : r = 0, (tendsto_add_at_top_iff_nat 1).mp $ by simp [pow_succ, this, tendsto_const_nhds])
129145
(assume : r ≠ 0,
130146
have tendsto (λn, (r⁻¹ ^ n)⁻¹) at_top (𝓝 0),
131-
from tendsto.comp tendsto_inverse_at_top_nhds_0
147+
from tendsto_inv_at_top_zero.comp
132148
(tendsto_pow_at_top_at_top_of_gt_1 $ one_lt_inv (lt_of_le_of_ne h₁ this.symm) h₂),
133149
tendsto.congr' (univ_mem_sets' $ by simp *) this)
134150

@@ -162,7 +178,7 @@ tendsto_coe_nat_real_at_top_iff.1 $
162178
by simpa using tendsto_pow_at_top_at_top_of_gt_1 hr
163179

164180
lemma tendsto_inverse_at_top_nhds_0_nat : tendsto (λ n : ℕ, (n : ℝ)⁻¹) at_top (𝓝 0) :=
165-
tendsto.comp tendsto_inverse_at_top_nhds_0 (tendsto_coe_nat_real_at_top_iff.2 tendsto_id)
181+
tendsto_inv_at_top_zero.comp (tendsto_coe_nat_real_at_top_iff.2 tendsto_id)
166182

167183
lemma tendsto_const_div_at_top_nhds_0_nat (C : ℝ) : tendsto (λ n : ℕ, C / n) at_top (𝓝 0) :=
168184
by simpa only [mul_zero] using tendsto_const_nhds.mul tendsto_inverse_at_top_nhds_0_nat

src/topology/algebra/ordered.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,3 +1360,6 @@ tendsto_nhds_unique at_top_ne_bot (tendsto_at_top_supr_nat f hf)
13601360
lemma infi_eq_of_tendsto {α} [topological_space α] [complete_linear_order α] [orderable_topology α]
13611361
{f : ℕ → α} {a : α} (hf : ∀n m, n ≤ m → f m ≤ f n) : tendsto f at_top (𝓝 a) → infi f = a :=
13621362
tendsto_nhds_unique at_top_ne_bot (tendsto_at_top_infi_nat f hf)
1363+
1364+
lemma tendsto_abs_at_top_at_top [decidable_linear_ordered_comm_group α] : tendsto (abs : α → α) at_top at_top :=
1365+
tendsto_at_top_mono _ (λ n, le_abs_self _) tendsto_id

0 commit comments

Comments
 (0)