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

tactic: rcases him with ⟨C, hC⟩
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
him : ∃ C, ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
⊢ EqOn f 0 {z | 0 ≤ z.re}

tactic: suffices ∀ z : ℂ, 0 < z.re → f z = 0 by
  simpa only [closure_setOf_lt_re] using
    EqOn.of_subset_closure this hd.continuousOn continuousOn_const subset_closure Subset.rfl
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
⊢ EqOn f 0 {z | 0 ≤ z.re}

tactic: set g : ℕ → ℂ → E := fun (n : ℕ) (z : ℂ) => exp z ^ n • f z
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
⊢ ∀ (z : ℂ), 0 < z.re → f z = 0

tactic: have hg : ∀ n z, ‖g n z‖ = expR z.re ^ n * ‖f z‖ := fun n z ↦ by
  simp only [norm_smul, norm_eq_abs, Complex.abs_pow, abs_exp]
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
⊢ ∀ (z : ℂ), 0 < z.re → f z = 0

tactic: intro z hz
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
⊢ ∀ (z : ℂ), 0 < z.re → f z = 0

tactic: suffices H : ∀ n : ℕ, ‖g n z‖ ≤ C
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
⊢ f z = 0

tactic: intro n
state_before: case H
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
⊢ ∀ (n : ℕ), ‖g n z‖ ≤ C

tactic: refine' right_half_plane_of_tendsto_zero_on_real ((differentiable_exp.pow n).diffContOnCl.smul hd)
  _ _ (fun y => _) hz.le
state_before: case H
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
⊢ ‖g n z‖ ≤ C

tactic: simpa only [closure_setOf_lt_re] using
  EqOn.of_subset_closure this hd.continuousOn continuousOn_const subset_closure Subset.rfl
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g : ℂ → E
z : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
this : ∀ (z : ℂ), 0 < z.re → f z = 0
⊢ EqOn f 0 {z | 0 ≤ z.re}

tactic: simp only [norm_smul, norm_eq_abs, Complex.abs_pow, abs_exp]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
n : ℕ
z : ℂ
⊢ ‖g n z‖ = expR z.re ^ n * ‖f z‖

tactic: contrapose! H
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
H : ∀ (n : ℕ), ‖g n z‖ ≤ C
⊢ f z = 0

tactic: simp only [hg]
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
H : f z ≠ 0
⊢ ∃ n, C < ‖(fun n z => exp z ^ n • f z) n z‖

tactic: exact (((tendsto_pow_atTop_atTop_of_one_lt (Real.one_lt_exp_iff.2 hz)).atTop_mul
  (norm_pos_iff.2 H) tendsto_const_nhds).eventually (eventually_gt_atTop C)).exists
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
H : f z ≠ 0
⊢ ∃ n, C < expR z.re ^ n * ‖f z‖

tactic: rcases hexp with ⟨c, hc, B, hO⟩
state_before: case H.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
⊢ ∃ c, c < 2 ∧ ∃ B, g n =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)

tactic: refine' ⟨max c 1, max_lt hc one_lt_two, n + max B 0, .of_norm_left _⟩
state_before: case H.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∃ c, c < 2 ∧ ∃ B, g n =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)

tactic: simp only [hg]
state_before: case H.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ (fun x => ‖g n x‖) =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z =>
    expR ((↑n + max B 0) * ↑Complex.abs z ^ max c 1)

tactic: refine' ((isBigO_refl (fun z : ℂ => expR z.re ^ n) _).mul hO.norm_left).trans (.of_bound 1 _)
state_before: case H.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ (fun x => expR x.re ^ n * ‖f x‖) =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z =>
    expR ((↑n + max B 0) * ↑Complex.abs z ^ max c 1)

tactic: simp only [← Real.exp_nat_mul, ← Real.exp_add, Real.norm_of_nonneg (Real.exp_pos _).le,
  Real.exp_le_exp, add_mul, eventually_inf_principal, eventually_comap, one_mul]
state_before: case H.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∀ᶠ (x : ℂ) in comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re},
    ‖expR x.re ^ n * expR (B * ↑Complex.abs x ^ c)‖ ≤ 1 * ‖expR ((↑n + max B 0) * ↑Complex.abs x ^ max c 1)‖

tactic: filter_upwards [eventually_ge_atTop (1 : ℝ)] with r hr z hzr _
state_before: case H.refine'_1.intro.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∀ᶠ (b : ℝ) in atTop,
    ∀ (a : ℂ),
      ↑Complex.abs a = b →
        a ∈ {z | 0 < z.re} →
          ↑n * a.re + B * ↑Complex.abs a ^ c ≤ ↑n * ↑Complex.abs a ^ max c 1 + max B 0 * ↑Complex.abs a ^ max c 1

tactic: subst r
state_before: case h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝¹ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z✝ : ℂ
hz : 0 < z✝.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
r : ℝ
hr : 1 ≤ r
z : ℂ
hzr : ↑Complex.abs z = r
a✝ : 0 < z.re
⊢ ↑n * z.re + B * ↑Complex.abs z ^ c ≤ ↑n * ↑Complex.abs z ^ max c 1 + max B 0 * ↑Complex.abs z ^ max c 1

tactic: refine' add_le_add (mul_le_mul_of_nonneg_left _ n.cast_nonneg) _
state_before: case h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝¹ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z✝ : ℂ
hz : 0 < z✝.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
z : ℂ
a✝ : 0 < z.re
hr : 1 ≤ ↑Complex.abs z
⊢ ↑n * z.re + B * ↑Complex.abs z ^ c ≤ ↑n * ↑Complex.abs z ^ max c 1 + max B 0 * ↑Complex.abs z ^ max c 1

tactic: calc
  z.re ≤ abs z := re_le_abs _
  _ = abs z ^ (1 : ℝ) := (Real.rpow_one _).symm
  _ ≤ abs z ^ max c 1 := Real.rpow_le_rpow_of_exponent_le hr (le_max_right _ _)
state_before: case h.refine'_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝¹ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z✝ : ℂ
hz : 0 < z✝.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
z : ℂ
a✝ : 0 < z.re
hr : 1 ≤ ↑Complex.abs z
⊢ z.re ≤ ↑Complex.abs z ^ max c 1

tactic: exact mul_le_mul (le_max_left _ _) (Real.rpow_le_rpow_of_exponent_le hr (le_max_left _ _))
  (Real.rpow_nonneg_of_nonneg (Complex.abs.nonneg _) _) (le_max_right _ _)
state_before: case h.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝¹ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z✝ : ℂ
hz : 0 < z✝.re
n : ℕ
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
z : ℂ
a✝ : 0 < z.re
hr : 1 ≤ ↑Complex.abs z
⊢ B * ↑Complex.abs z ^ c ≤ max B 0 * ↑Complex.abs z ^ max c 1

tactic: rw [tendsto_zero_iff_norm_tendsto_zero]
state_before: case H.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
⊢ Tendsto (fun x => g n ↑x) atTop (𝓝 0)

tactic: simp only [hg]
state_before: case H.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
⊢ Tendsto (fun e => ‖g n ↑e‖) atTop (𝓝 0)

tactic: exact hre n
state_before: case H.refine'_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
⊢ Tendsto (fun e => expR (↑e).re ^ n * ‖f ↑e‖) atTop (𝓝 0)

tactic: rw [hg, ofReal_mul_re, I_re, mul_zero, Real.exp_zero, one_pow, one_mul]
state_before: case H.refine'_3
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
y : ℝ
⊢ ‖g n (↑y * I)‖ ≤ C

tactic: exact hC y
state_before: case H.refine'_3
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C✝ : ℝ
f g✝ : ℂ → E
z✝ : ℂ
hd : DiffContOnCl ℂ f {z | 0 < z.re}
hexp : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 {z | 0 < z.re}] fun z => expR (B * ↑Complex.abs z ^ c)
hre : SuperpolynomialDecay atTop expR fun x => ‖f ↑x‖
C : ℝ
hC : ∀ (x : ℝ), ‖f (↑x * I)‖ ≤ C
g : ℕ → ℂ → E := fun n z => exp z ^ n • f z
hg : ∀ (n : ℕ) (z : ℂ), ‖g n z‖ = expR z.re ^ n * ‖f z‖
z : ℂ
hz : 0 < z.re
n : ℕ
y : ℝ
⊢ ‖f (↑y * I)‖ ≤ C