Theorem: Complex.circleTransformDeriv_bound
File: Mathlib/MeasureTheory/Integral/CircleTransform.lean

tactic: obtain ⟨r, hr, hrx⟩ := exists_lt_mem_ball_of_mem_ball hx
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: obtain ⟨ε', hε', H⟩ := exists_ball_subset_ball hrx
state_before: case intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: obtain ⟨⟨⟨a, b⟩, ⟨ha, hb⟩⟩, hab⟩ :=
  abs_circleTransformBoundingFunction_le hr (pos_of_mem_ball hrx).le z
state_before: case intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: let V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun _ => 1) θ
state_before: case intro.intro.intro.intro.intro.mk.mk.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: have funccomp : ContinuousOn (fun r => abs (f r)) (sphere z R) := by
  have cabs : ContinuousOn abs ⊤ := by apply continuous_abs.continuousOn
  apply cabs.comp hf; rw [MapsTo]; tauto
state_before: case intro.intro.intro.intro.intro.mk.mk.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: have sbou :=
  IsCompact.exists_isMaxOn (isCompact_sphere z R) (NormedSpace.sphere_nonempty.2 hR.le) funccomp
state_before: case intro.intro.intro.intro.intro.mk.mk.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: obtain ⟨X, HX, HX2⟩ := sbou
state_before: case intro.intro.intro.intro.intro.mk.mk.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
sbou : ∃ x, x ∈ sphere z R ∧ IsMaxOn (fun r => ↑abs (f r)) (sphere z R) x
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: refine' ⟨abs (V b a) * abs (f X), ε', hε', Subset.trans H (ball_subset_ball hr.le), _⟩
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
⊢ ∃ B ε, 0 < ε ∧ ball x ε ⊆ ball z R ∧ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε → ‖circleTransformDeriv R z y f t‖ ≤ B

tactic: intro y v hv
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
⊢ ∀ (t : ℝ) (y : ℂ), y ∈ ball x ε' → ‖circleTransformDeriv R z y f t‖ ≤ ↑abs (V b a) * ↑abs (f X)

tactic: obtain ⟨y1, hy1, hfun⟩ :=
  Periodic.exists_mem_Ico₀ (circleTransformDeriv_periodic R z v f) Real.two_pi_pos y
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
⊢ ‖circleTransformDeriv R z v f y‖ ≤ ↑abs (V b a) * ↑abs (f X)

tactic: have hy2 : y1 ∈ [[0, 2 * π]] := by
  convert Ico_subset_Icc_self hy1 using 1
  simp [uIcc_of_le Real.two_pi_pos.le]
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
⊢ ‖circleTransformDeriv R z v f y‖ ≤ ↑abs (V b a) * ↑abs (f X)

tactic: simp only [IsMaxOn, IsMaxFilter, eventually_principal, mem_sphere_iff_norm, norm_eq_abs] at HX2
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
hy2 : y1 ∈ [[0, 2 * π]]
⊢ ‖circleTransformDeriv R z v f y‖ ≤ ↑abs (V b a) * ↑abs (f X)

tactic: have := mul_le_mul (hab ⟨⟨v, y1⟩, ⟨ball_subset_closedBall (H hv), hy2⟩⟩)
  (HX2 (circleMap z R y1) (circleMap_mem_sphere z hR.le y1)) (Complex.abs.nonneg _)
  (Complex.abs.nonneg _)
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
hy2 : y1 ∈ [[0, 2 * π]]
HX2 : ∀ (x : ℂ), ↑abs (x - z) = R → ↑abs (f x) ≤ ↑abs (f X)
⊢ ‖circleTransformDeriv R z v f y‖ ≤ ↑abs (V b a) * ↑abs (f X)

tactic: simp_rw [hfun]
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
hy2 : y1 ∈ [[0, 2 * π]]
HX2 : ∀ (x : ℂ), ↑abs (x - z) = R → ↑abs (f x) ≤ ↑abs (f X)
this :
  ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (v, y1), property := (_ : (v, y1).fst ∈ closedBall z r ∧ (v, y1).snd ∈ [[0, 2 * π]]) }) *
      ↑abs (f (circleMap z R y1)) ≤
    ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) }) *
      ↑abs (f X)
⊢ ‖circleTransformDeriv R z v f y‖ ≤ ↑abs (V b a) * ↑abs (f X)

tactic: simp only [circleTransformBoundingFunction, circleTransformDeriv, norm_eq_abs,
  Algebra.id.smul_eq_mul, deriv_circleMap, map_mul, abs_circleMap_zero, abs_I, mul_one, ←
  mul_assoc, mul_inv_rev, inv_I, abs_neg, abs_inv, abs_ofReal, one_mul, abs_two, abs_pow,
  mem_ball, gt_iff_lt, Subtype.coe_mk, SetCoe.forall, mem_prod, mem_closedBall, and_imp,
  Prod.forall, NormedSpace.sphere_nonempty, mem_sphere_iff_norm] at *
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
hy2 : y1 ∈ [[0, 2 * π]]
HX2 : ∀ (x : ℂ), ↑abs (x - z) = R → ↑abs (f x) ≤ ↑abs (f X)
this :
  ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (v, y1), property := (_ : (v, y1).fst ∈ closedBall z r ∧ (v, y1).snd ∈ [[0, 2 * π]]) }) *
      ↑abs (f (circleMap z R y1)) ≤
    ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) }) *
      ↑abs (f X)
⊢ ‖circleTransformDeriv R z v f y1‖ ≤ ↑abs (circleTransformDeriv R z a (fun x => 1) b) * ↑abs (f X)

tactic: exact this
state_before: case intro.intro.intro.intro.intro.mk.mk.intro.intro.intro.intro.intro
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
ε' : ℝ
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hy2 : y1 ∈ [[0, 2 * π]]
HX2 : ∀ (x : ℂ), ↑abs (x - z) = R → ↑abs (f x) ≤ ↑abs (f X)
hx : dist x z < R
hrx : dist x z < r
hε' : 0 < ε'
hab :
  ∀ (a_1 : ℂ) (b_1 : ℝ),
    dist a_1 z ≤ r →
      b_1 ∈ [[0, 2 * π]] →
        ↑abs (-I) * ↑abs (↑π)⁻¹ * ↑abs 2⁻¹ * Abs.abs R * ↑abs ((circleMap z R b_1 - a_1) ^ 2)⁻¹ ≤
          ↑abs (-I) * ↑abs (↑π)⁻¹ * ↑abs 2⁻¹ * Abs.abs R * ↑abs ((circleMap z R b - a) ^ 2)⁻¹
HX : ↑abs (X - z) = R
hfun :
  -I * (↑π)⁻¹ * 2⁻¹ * circleMap 0 R y * I * ((circleMap z R y - v) ^ 2)⁻¹ * f (circleMap z R y) =
    -I * (↑π)⁻¹ * 2⁻¹ * circleMap 0 R y1 * I * ((circleMap z R y1 - v) ^ 2)⁻¹ * f (circleMap z R y1)
this :
  ↑abs (-I) * ↑abs (↑π)⁻¹ * ↑abs 2⁻¹ * Abs.abs R * ↑abs ((circleMap z R y1 - v) ^ 2)⁻¹ * ↑abs (f (circleMap z R y1)) ≤
    ↑abs (-I) * ↑abs (↑π)⁻¹ * ↑abs 2⁻¹ * Abs.abs R * ↑abs ((circleMap z R b - a) ^ 2)⁻¹ * ↑abs (f X)
⊢ ↑abs (-I) * ↑abs (↑π)⁻¹ * ↑abs 2⁻¹ * Abs.abs R * ↑abs ((circleMap z R y1 - v) ^ 2)⁻¹ * ↑abs (f (circleMap z R y1)) ≤
    ↑abs (-I) * ↑abs (↑π)⁻¹ * ↑abs 2⁻¹ * Abs.abs R * ↑abs ((circleMap z R b - a) ^ 2)⁻¹ * ↑abs (f X)

tactic: have cabs : ContinuousOn abs ⊤ := by apply continuous_abs.continuousOn
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
⊢ ContinuousOn (fun r => ↑abs (f r)) (sphere z R)

tactic: apply cabs.comp hf
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
cabs : ContinuousOn ↑abs ⊤
⊢ ContinuousOn (fun r => ↑abs (f r)) (sphere z R)

tactic: rw [MapsTo]
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
cabs : ContinuousOn ↑abs ⊤
⊢ MapsTo f (sphere z R) ⊤

tactic: tauto
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
cabs : ContinuousOn ↑abs ⊤
⊢ ∀ ⦃x : ℂ⦄, x ∈ sphere z R → f x ∈ ⊤

tactic: apply continuous_abs.continuousOn
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
⊢ ContinuousOn ↑abs ⊤

tactic: convert Ico_subset_Icc_self hy1 using 1
state_before: E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
⊢ y1 ∈ [[0, 2 * π]]

tactic: simp [uIcc_of_le Real.two_pi_pos.le]
state_before: case h.e'_5
E : Type ?u.227414
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R : ℝ
hR : 0 < R
z x : ℂ
f : ℂ → ℂ
hx : x ∈ ball z R
hf : ContinuousOn f (sphere z R)
r : ℝ
hr : r < R
hrx : x ∈ ball z r
ε' : ℝ
hε' : ε' > 0
H : ball x ε' ⊆ ball z r
a : ℂ
b : ℝ
ha : (a, b).fst ∈ closedBall z r
hb : (a, b).snd ∈ [[0, 2 * π]]
hab :
  ∀ (y : ↑(closedBall z r ×ˢ [[0, 2 * π]])),
    ↑abs (circleTransformBoundingFunction R z ↑y) ≤
      ↑abs
        (circleTransformBoundingFunction R z
          ↑{ val := (a, b), property := (_ : (a, b).fst ∈ closedBall z r ∧ (a, b).snd ∈ [[0, 2 * π]]) })
V : ℝ → ℂ → ℂ := fun θ w => circleTransformDeriv R z w (fun x => 1) θ
funccomp : ContinuousOn (fun r => ↑abs (f r)) (sphere z R)
X : ℂ
HX : X ∈ sphere z R
HX2 : IsMaxOn (fun r => ↑abs (f r)) (sphere z R) X
y : ℝ
v : ℂ
hv : v ∈ ball x ε'
y1 : ℝ
hy1 : y1 ∈ Ico 0 (2 * π)
hfun : circleTransformDeriv R z v f y = circleTransformDeriv R z v f y1
⊢ [[0, 2 * π]] = Icc 0 (2 * π)