Skip to content

Commit 96a6efb

Browse files
committed
feat(Analysis/SpecialFunctions/Complex/LogBounds): Add some log bounds (#15376)
Add some basic bounds on complex logs that are useful for bounding infinite sums/products. Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk>
1 parent 6e0804c commit 96a6efb

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,31 @@ lemma norm_log_one_add_sub_self_le {z : ℂ} (hz : ‖z‖ < 1) :
178178
· simp [logTaylor_succ, logTaylor_zero, sub_eq_add_neg]
179179
· norm_num
180180

181+
lemma norm_log_one_add_le {z : ℂ} (hz : ‖z‖ < 1) :
182+
‖log (1 + z)‖ ≤ ‖z‖ ^ 2 * (1 - ‖z‖)⁻¹ / 2 + ‖z‖ := by
183+
rw [Eq.symm (sub_add_cancel (log (1 + z)) z)]
184+
apply le_trans (norm_add_le _ _)
185+
exact add_le_add_right (Complex.norm_log_one_add_sub_self_le hz) ‖z‖
186+
187+
/--For `‖z‖ ≤ 1/2`, the complex logarithm is bounded by `(3/2) * ‖z‖`. -/
188+
lemma norm_log_one_add_half_le_self {z : ℂ} (hz : ‖z‖ ≤ 1/2) : ‖(log (1 + z))‖ ≤ (3/2) * ‖z‖ := by
189+
apply le_trans (norm_log_one_add_le (lt_of_le_of_lt hz one_half_lt_one))
190+
have hz3 : (1 - ‖z‖)⁻¹ ≤ 2 := by
191+
rw [inv_eq_one_div, div_le_iff]
192+
· linarith
193+
· linarith
194+
have hz4 : ‖z‖^2 * (1 - ‖z‖)⁻¹ / 2 ≤ ‖z‖/2 * 2 / 2 := by
195+
gcongr
196+
· rw [inv_nonneg]
197+
linarith
198+
· rw [sq, div_eq_mul_one_div]
199+
apply mul_le_mul (by simp only [norm_eq_abs, mul_one, le_refl])
200+
(by simpa only [norm_eq_abs, one_div] using hz) (norm_nonneg z)
201+
(by simp only [norm_eq_abs, mul_one, apply_nonneg])
202+
simp only [isUnit_iff_ne_zero, ne_eq, OfNat.ofNat_ne_zero, not_false_eq_true,
203+
IsUnit.div_mul_cancel] at hz4
204+
linarith
205+
181206
/-- The difference of `log (1-z)⁻¹` and its `(n+1)`st Taylor polynomial can be bounded in
182207
terms of `‖z‖`. -/
183208
lemma norm_log_one_sub_inv_add_logTaylor_neg_le (n : ℕ) {z : ℂ} (hz : ‖z‖ < 1) :

0 commit comments

Comments
 (0)