@@ -178,6 +178,31 @@ lemma norm_log_one_add_sub_self_le {z : ℂ} (hz : ‖z‖ < 1) :
178
178
· simp [logTaylor_succ, logTaylor_zero, sub_eq_add_neg]
179
179
· norm_num
180
180
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
+
181
206
/-- The difference of `log (1-z)⁻¹` and its `(n+1)`st Taylor polynomial can be bounded in
182
207
terms of `‖z‖`. -/
183
208
lemma norm_log_one_sub_inv_add_logTaylor_neg_le (n : ℕ) {z : ℂ} (hz : ‖z‖ < 1 ) :
0 commit comments