Theorem: Complex.norm_cderiv_le
File: Mathlib/Analysis/Complex/LocallyUniformLimit.lean

tactic: have hM : 0 ≤ M := by
  obtain ⟨w, hw⟩ : (sphere z r).Nonempty := NormedSpace.sphere_nonempty.mpr hr.le
  exact (norm_nonneg _).trans (hf w hw)
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
⊢ ‖cderiv r f z‖ ≤ M / r

tactic: have h1 : ∀ w ∈ sphere z r, ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2 := by
  intro w hw
  simp only [mem_sphere_iff_norm, norm_eq_abs] at hw
  simp only [norm_smul, inv_mul_eq_div, hw, norm_eq_abs, map_inv₀, Complex.abs_pow]
  exact div_le_div hM (hf w hw) (sq_pos_of_pos hr) le_rfl
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
⊢ ‖cderiv r f z‖ ≤ M / r

tactic: have h2 := circleIntegral.norm_integral_le_of_norm_le_const hr.le h1
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
h1 : ∀ (w : ℂ), w ∈ sphere z r → ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2
⊢ ‖cderiv r f z‖ ≤ M / r

tactic: simp only [cderiv, norm_smul]
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
h1 : ∀ (w : ℂ), w ∈ sphere z r → ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2
h2 : ‖∮ (z_1 : ℂ) in C(z, r), ((z_1 - z) ^ 2)⁻¹ • f z_1‖ ≤ 2 * π * r * (M / r ^ 2)
⊢ ‖cderiv r f z‖ ≤ M / r

tactic: refine' (mul_le_mul le_rfl h2 (norm_nonneg _) (norm_nonneg _)).trans (le_of_eq _)
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
h1 : ∀ (w : ℂ), w ∈ sphere z r → ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2
h2 : ‖∮ (z_1 : ℂ) in C(z, r), ((z_1 - z) ^ 2)⁻¹ • f z_1‖ ≤ 2 * π * r * (M / r ^ 2)
⊢ ‖(2 * ↑π * I)⁻¹‖ * ‖∮ (w : ℂ) in C(z, r), ((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r

tactic: field_simp [_root_.abs_of_nonneg Real.pi_pos.le, Real.pi_pos.ne.symm, hr.ne.symm]
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
h1 : ∀ (w : ℂ), w ∈ sphere z r → ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2
h2 : ‖∮ (z_1 : ℂ) in C(z, r), ((z_1 - z) ^ 2)⁻¹ • f z_1‖ ≤ 2 * π * r * (M / r ^ 2)
⊢ ‖(2 * ↑π * I)⁻¹‖ * (2 * π * r * (M / r ^ 2)) = M / r

tactic: ring
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
h1 : ∀ (w : ℂ), w ∈ sphere z r → ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2
h2 : ‖∮ (z_1 : ℂ) in C(z, r), ((z_1 - z) ^ 2)⁻¹ • f z_1‖ ≤ 2 * π * r * (M / r ^ 2)
⊢ 2 * π * r * M * r = M * (2 * π * r ^ 2)

tactic: obtain ⟨w, hw⟩ : (sphere z r).Nonempty := NormedSpace.sphere_nonempty.mpr hr.le
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
⊢ 0 ≤ M

tactic: exact (norm_nonneg _).trans (hf w hw)
state_before: case intro
E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
w : ℂ
hw : w ∈ sphere z r
⊢ 0 ≤ M

tactic: intro w hw
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
⊢ ∀ (w : ℂ), w ∈ sphere z r → ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2

tactic: simp only [mem_sphere_iff_norm, norm_eq_abs] at hw
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
w : ℂ
hw : w ∈ sphere z r
⊢ ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2

tactic: simp only [norm_smul, inv_mul_eq_div, hw, norm_eq_abs, map_inv₀, Complex.abs_pow]
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
w : ℂ
hw : ↑abs (w - z) = r
⊢ ‖((w - z) ^ 2)⁻¹ • f w‖ ≤ M / r ^ 2

tactic: exact div_le_div hM (hf w hw) (sq_pos_of_pos hr) le_rfl
state_before: E : Type u_1
ι : Type ?u.6367
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι
F : ι → ℂ → E
f g : ℂ → E
hr : 0 < r
hf : ∀ (w : ℂ), w ∈ sphere z r → ‖f w‖ ≤ M
hM : 0 ≤ M
w : ℂ
hw : ↑abs (w - z) = r
⊢ ‖f w‖ / r ^ 2 ≤ M / r ^ 2