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

Commit 5db1ae4

Browse files
committed
feat(analysis/specific_limits): useful specializations of some lemmas (#12069)
1 parent 1bf4181 commit 5db1ae4

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

src/algebra/group_power/order.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@ strict_mono_pow h h2
191191
lemma pow_lt_pow_iff (h : 1 < a) : a ^ n < a ^ m ↔ n < m :=
192192
(strict_mono_pow h).lt_iff_lt
193193

194+
lemma pow_le_pow_iff (h : 1 < a) : a ^ n ≤ a ^ m ↔ n ≤ m :=
195+
(strict_mono_pow h).le_iff_le
196+
194197
lemma strict_anti_pow (h₀ : 0 < a) (h₁ : a < 1) : strict_anti (λ n : ℕ, a ^ n) :=
195198
strict_anti_nat_of_succ_lt $ λ n,
196199
by simpa only [pow_succ, one_mul] using mul_lt_mul h₁ le_rfl (pow_pos h₀ n) zero_le_one

src/analysis/normed/group/basic.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,10 @@ lemma add_sub_lipschitz_with (hf : antilipschitz_with Kf f) (hg : lipschitz_with
637637
(hK : Kg < Kf⁻¹) : antilipschitz_with (Kf⁻¹ - Kg)⁻¹ g :=
638638
by simpa only [pi.sub_apply, add_sub_cancel'_right] using hf.add_lipschitz_with hg hK
639639

640+
lemma le_mul_norm_sub {f : E → F} (hf : antilipschitz_with K f) (x y : E) :
641+
∥x - y∥ ≤ K * ∥f x - f y∥ :=
642+
by simp [← dist_eq_norm, hf.le_mul_dist x y]
643+
640644
end antilipschitz_with
641645

642646
/-- A group homomorphism from an `add_comm_group` to a `semi_normed_group` induces a

src/analysis/specific_limits.lean

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,24 @@ begin
304304
simpa [div_eq_mul_inv] using tendsto_pow_const_div_const_pow_of_one_lt k hr'
305305
end
306306

307+
/-- If `0 ≤ r < 1`, then `n ^ k r ^ n` tends to zero for any natural `k`.
308+
This is a specialized version of `tendsto_pow_const_mul_const_pow_of_abs_lt_one`, singled out
309+
for ease of application. -/
310+
lemma tendsto_pow_const_mul_const_pow_of_lt_one (k : ℕ) {r : ℝ} (hr : 0 ≤ r) (h'r : r < 1) :
311+
tendsto (λ n, n ^ k * r ^ n : ℕ → ℝ) at_top (𝓝 0) :=
312+
tendsto_pow_const_mul_const_pow_of_abs_lt_one k (abs_lt.2 ⟨neg_one_lt_zero.trans_le hr, h'r⟩)
313+
314+
/-- If `|r| < 1`, then `n * r ^ n` tends to zero. -/
315+
lemma tendsto_self_mul_const_pow_of_abs_lt_one {r : ℝ} (hr : |r| < 1) :
316+
tendsto (λ n, n * r ^ n : ℕ → ℝ) at_top (𝓝 0) :=
317+
by simpa only [pow_one] using tendsto_pow_const_mul_const_pow_of_abs_lt_one 1 hr
318+
319+
/-- If `0 ≤ r < 1`, then `n * r ^ n` tends to zero. This is a specialized version of
320+
`tendsto_self_mul_const_pow_of_abs_lt_one`, singled out for ease of application. -/
321+
lemma tendsto_self_mul_const_pow_of_lt_one {r : ℝ} (hr : 0 ≤ r) (h'r : r < 1) :
322+
tendsto (λ n, n * r ^ n : ℕ → ℝ) at_top (𝓝 0) :=
323+
by simpa only [pow_one] using tendsto_pow_const_mul_const_pow_of_lt_one 1 hr h'r
324+
307325
/-- If a sequence `v` of real numbers satisfies `k * v n ≤ v (n+1)` with `1 < k`,
308326
then it goes to +∞. -/
309327
lemma tendsto_at_top_of_geom_le {v : ℕ → ℝ} {c : ℝ} (h₀ : 0 < v 0) (hc : 1 < c)
@@ -361,6 +379,10 @@ by convert has_sum_geometric_of_lt_1 _ _; norm_num
361379
lemma summable_geometric_two : summable (λn:ℕ, ((1:ℝ)/2) ^ n) :=
362380
⟨_, has_sum_geometric_two⟩
363381

382+
lemma summable_geometric_two_encode {ι : Type*} [encodable ι] :
383+
summable (λ (i : ι), (1/2 : ℝ)^(encodable.encode i)) :=
384+
summable_geometric_two.comp_injective encodable.encode_injective
385+
364386
lemma tsum_geometric_two : ∑'n:ℕ, ((1:ℝ)/2) ^ n = 2 :=
365387
has_sum_geometric_two.tsum_eq
366388

0 commit comments

Comments
 (0)