Theorem: PhragmenLindelof.quadrant_I
File: Mathlib/Analysis/Complex/PhragmenLindelof.lean

tactic: rcases eq_or_ne z 0 with (rfl | hzne)
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
⊢ ‖f z‖ ≤ C

tactic: obtain ⟨ζ, hζ, rfl⟩ : ∃ ζ : ℂ, ζ.im ∈ Icc 0 (π / 2) ∧ exp ζ = z := by
  refine' ⟨log z, _, exp_log hzne⟩
  rw [log_im]
  exact ⟨arg_nonneg_iff.2 hz_im, arg_le_pi_div_two_iff.2 (Or.inl hz_re)⟩
state_before: case inr
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
hzne : z ≠ 0
⊢ ‖f z‖ ≤ C

tactic: change ‖(f ∘ exp) ζ‖ ≤ C
state_before: case inr.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
⊢ ‖f (exp ζ)‖ ≤ C

tactic: have H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0) := fun z hz ↦ by
  rw [mem_reProdIm, exp_re, exp_im, mem_Ioi, mem_Ioi]
  have : 0 < Real.cos z.im := Real.cos_pos_of_mem_Ioo ⟨by linarith [hz.1, hz.2], hz.2⟩
  have : 0 < Real.sin z.im :=
    Real.sin_pos_of_mem_Ioo ⟨hz.1, hz.2.trans (half_lt_self Real.pi_pos)⟩
  constructor <;> positivity
state_before: case inr.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
⊢ ‖(f ∘ exp) ζ‖ ≤ C

tactic: refine' horizontal_strip (hd.comp differentiable_exp.diffContOnCl H) _ _ _ hζ.1 hζ.2
state_before: case inr.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
⊢ ‖(f ∘ exp) ζ‖ ≤ C

tactic: exact hre 0 le_rfl
state_before: case inl
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
hz_re : 0 ≤ 0.re
hz_im : 0 ≤ 0.im
⊢ ‖f 0‖ ≤ C

tactic: refine' ⟨log z, _, exp_log hzne⟩
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
hzne : z ≠ 0
⊢ ∃ ζ, ζ.im ∈ Icc 0 (π / 2) ∧ exp ζ = z

tactic: rw [log_im]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
hzne : z ≠ 0
⊢ (log z).im ∈ Icc 0 (π / 2)

tactic: exact ⟨arg_nonneg_iff.2 hz_im, arg_le_pi_div_two_iff.2 (Or.inl hz_re)⟩
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
hzne : z ≠ 0
⊢ arg z ∈ Icc 0 (π / 2)

tactic: rw [mem_reProdIm, exp_re, exp_im, mem_Ioi, mem_Ioi]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
z : ℂ
hz : z ∈ im ⁻¹' Ioo 0 (π / 2)
⊢ exp z ∈ Ioi 0 ×ℂ Ioi 0

tactic: have : 0 < Real.cos z.im := Real.cos_pos_of_mem_Ioo ⟨by linarith [hz.1, hz.2], hz.2⟩
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
z : ℂ
hz : z ∈ im ⁻¹' Ioo 0 (π / 2)
⊢ 0 < expR z.re * Real.cos z.im ∧ 0 < expR z.re * Real.sin z.im

tactic: have : 0 < Real.sin z.im :=
  Real.sin_pos_of_mem_Ioo ⟨hz.1, hz.2.trans (half_lt_self Real.pi_pos)⟩
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
z : ℂ
hz : z ∈ im ⁻¹' Ioo 0 (π / 2)
this : 0 < Real.cos z.im
⊢ 0 < expR z.re * Real.cos z.im ∧ 0 < expR z.re * Real.sin z.im

tactic: constructor <;> positivity
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
z : ℂ
hz : z ∈ im ⁻¹' Ioo 0 (π / 2)
this✝ : 0 < Real.cos z.im
this : 0 < Real.sin z.im
⊢ 0 < expR z.re * Real.cos z.im ∧ 0 < expR z.re * Real.sin z.im

tactic: linarith [hz.1, hz.2]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
z : ℂ
hz : z ∈ im ⁻¹' Ioo 0 (π / 2)
⊢ -(π / 2) < z.im

tactic: rw [sub_zero, div_div_cancel' Real.pi_pos.ne']
state_before: case inr.intro.intro.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
⊢ ∃ c,
    c < π / (π / 2 - 0) ∧
      ∃ B,
        (f ∘ exp) =O[comap (Abs.abs ∘ re) atTop ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z => expR (B * expR (c * Abs.abs z.re))

tactic: rcases hB with ⟨c, hc, B, hO⟩
state_before: case inr.intro.intro.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
⊢ ∃ c,
    c < 2 ∧
      ∃ B,
        (f ∘ exp) =O[comap (Abs.abs ∘ re) atTop ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z => expR (B * expR (c * Abs.abs z.re))

tactic: refine' ⟨c, hc, max B 0, _⟩
state_before: case inr.intro.intro.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∃ c,
    c < 2 ∧
      ∃ B,
        (f ∘ exp) =O[comap (Abs.abs ∘ re) atTop ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z => expR (B * expR (c * Abs.abs z.re))

tactic: rw [← comap_comap, comap_abs_atTop, comap_sup, inf_sup_right]
state_before: case inr.intro.intro.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ (f ∘ exp) =O[comap (Abs.abs ∘ re) atTop ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z => expR (max B 0 * expR (c * Abs.abs z.re))

tactic: refine' IsBigO.sup _
  ((hO.comp_tendsto <| tendsto_exp_comap_re_atTop.inf H.tendsto).trans <| .of_bound 1 _)
state_before: case inr.intro.intro.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ (f ∘ exp) =O[comap re atBot ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2)) ⊔ comap re atTop ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z =>
    expR (max B 0 * expR (c * Abs.abs z.re))

tactic: have hc : ContinuousWithinAt f (Ioi 0 ×ℂ Ioi 0) 0 := by
  refine' (hd.continuousOn _ _).mono subset_closure
  simp [closure_reProdIm, mem_reProdIm]
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ (f ∘ exp) =O[comap re atBot ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z => expR (max B 0 * expR (c * Abs.abs z.re))

tactic: refine'
  ((hc.tendsto.comp <| tendsto_exp_comap_re_atBot.inf H.tendsto).isBigO_one ℝ).trans
    (isBigO_of_le _ fun w => _)
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc✝ : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hc : ContinuousWithinAt f (Ioi 0 ×ℂ Ioi 0) 0
⊢ (f ∘ exp) =O[comap re atBot ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2))] fun z => expR (max B 0 * expR (c * Abs.abs z.re))

tactic: rw [norm_one, Real.norm_of_nonneg (Real.exp_pos _).le, Real.one_le_exp_iff]
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc✝ : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hc : ContinuousWithinAt f (Ioi 0 ×ℂ Ioi 0) 0
w : ℂ
⊢ ‖1‖ ≤ ‖expR (max B 0 * expR (c * Abs.abs w.re))‖

tactic: exact mul_nonneg (le_max_right _ _) (Real.exp_pos _).le
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc✝ : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hc : ContinuousWithinAt f (Ioi 0 ×ℂ Ioi 0) 0
w : ℂ
⊢ 0 ≤ max B 0 * expR (c * Abs.abs w.re)

tactic: refine' (hd.continuousOn _ _).mono subset_closure
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ContinuousWithinAt f (Ioi 0 ×ℂ Ioi 0) 0

tactic: simp [closure_reProdIm, mem_reProdIm]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ 0 ∈ closure (Ioi 0 ×ℂ Ioi 0)

tactic: simp only [eventually_inf_principal, eventually_comap, comp_apply, one_mul,
  Real.norm_of_nonneg (Real.exp_pos _).le, abs_exp, ← Real.exp_mul, Real.exp_le_exp]
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∀ᶠ (x : ℂ) in comap re atTop ⊓ 𝓟 (im ⁻¹' Ioo 0 (π / 2)),
    ‖((fun z => expR (B * ↑Complex.abs z ^ c)) ∘ exp) x‖ ≤ 1 * ‖expR (max B 0 * expR (c * Abs.abs x.re))‖

tactic: refine' (eventually_ge_atTop 0).mono fun x hx z hz _ => _
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∀ᶠ (b : ℝ) in atTop,
    ∀ (a : ℂ), a.re = b → a ∈ im ⁻¹' Ioo 0 (π / 2) → B * expR (a.re * c) ≤ max B 0 * expR (c * Abs.abs a.re)

tactic: rw [hz, _root_.abs_of_nonneg hx, mul_comm _ c]
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
x : ℝ
hx : 0 ≤ x
z : ℂ
hz : z.re = x
x✝ : z ∈ im ⁻¹' Ioo 0 (π / 2)
⊢ B * expR (z.re * c) ≤ max B 0 * expR (c * Abs.abs z.re)

tactic: exact mul_le_mul_of_nonneg_right (le_max_left _ _) (Real.exp_pos _).le
state_before: case inr.intro.intro.refine'_1.intro.intro.intro.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
x : ℝ
hx : 0 ≤ x
z : ℂ
hz : z.re = x
x✝ : z ∈ im ⁻¹' Ioo 0 (π / 2)
⊢ B * expR (c * x) ≤ max B 0 * expR (c * x)

tactic: intro ζ hζ
state_before: case inr.intro.intro.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
⊢ ∀ (z : ℂ), z.im = 0 → ‖(f ∘ exp) z‖ ≤ C

tactic: lift ζ to ℝ using hζ
state_before: case inr.intro.intro.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ✝ : ℂ
hz_re : 0 ≤ (exp ζ✝).re
hz_im : 0 ≤ (exp ζ✝).im
hzne : exp ζ✝ ≠ 0
hζ✝ : ζ✝.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
ζ : ℂ
hζ : ζ.im = 0
⊢ ‖(f ∘ exp) ζ‖ ≤ C

tactic: rw [comp_apply, ← ofReal_exp]
state_before: case inr.intro.intro.refine'_2.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ✝ : ℂ
hz_re : 0 ≤ (exp ζ✝).re
hz_im : 0 ≤ (exp ζ✝).im
hzne : exp ζ✝ ≠ 0
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
ζ : ℝ
⊢ ‖(f ∘ exp) ↑ζ‖ ≤ C

tactic: exact hre _ (Real.exp_pos _).le
state_before: case inr.intro.intro.refine'_2.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ✝ : ℂ
hz_re : 0 ≤ (exp ζ✝).re
hz_im : 0 ≤ (exp ζ✝).im
hzne : exp ζ✝ ≠ 0
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
ζ : ℝ
⊢ ‖f ↑(expR ζ)‖ ≤ C

tactic: intro ζ hζ
state_before: case inr.intro.intro.refine'_3
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ : ℂ
hz_re : 0 ≤ (exp ζ).re
hz_im : 0 ≤ (exp ζ).im
hzne : exp ζ ≠ 0
hζ : ζ.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
⊢ ∀ (z : ℂ), z.im = π / 2 → ‖(f ∘ exp) z‖ ≤ C

tactic: rw [← re_add_im ζ, hζ, comp_apply, exp_add_mul_I, ← ofReal_cos, ← ofReal_sin,
  Real.cos_pi_div_two, Real.sin_pi_div_two, ofReal_zero, ofReal_one, one_mul, zero_add, ←
  ofReal_exp]
state_before: case inr.intro.intro.refine'_3
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ✝ : ℂ
hz_re : 0 ≤ (exp ζ✝).re
hz_im : 0 ≤ (exp ζ✝).im
hzne : exp ζ✝ ≠ 0
hζ✝ : ζ✝.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
ζ : ℂ
hζ : ζ.im = π / 2
⊢ ‖(f ∘ exp) ζ‖ ≤ C

tactic: exact him _ (Real.exp_pos _).le
state_before: case inr.intro.intro.refine'_3
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Ioi 0 ×ℂ Ioi 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), 0 ≤ x → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), 0 ≤ x → ‖f (↑x * I)‖ ≤ C
ζ✝ : ℂ
hz_re : 0 ≤ (exp ζ✝).re
hz_im : 0 ≤ (exp ζ✝).im
hzne : exp ζ✝ ≠ 0
hζ✝ : ζ✝.im ∈ Icc 0 (π / 2)
H : MapsTo exp (im ⁻¹' Ioo 0 (π / 2)) (Ioi 0 ×ℂ Ioi 0)
ζ : ℂ
hζ : ζ.im = π / 2
⊢ ‖f (↑(expR ζ.re) * I)‖ ≤ C