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

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

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

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

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

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

tactic: have H : MapsTo Neg.neg (Ioi 0 ×ℂ Ioi 0) (Iio 0 ×ℂ Iio 0) := by
  intro w hw
  simpa only [mem_reProdIm, neg_re, neg_im, neg_lt_zero, mem_Iio] using hw
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Iio 0 ×ℂ Iio 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Iio 0 ×ℂ Iio 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), x ≤ 0 → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), x ≤ 0 → ‖f (↑x * I)‖ ≤ C
z : ℂ
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
⊢ ‖(f ∘ Neg.neg) z‖ ≤ C

tactic: refine'
  quadrant_I (hd.comp differentiable_neg.diffContOnCl H) _ (fun x hx => _) (fun x hx => _)
    hz_re hz_im
state_before: case intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Iio 0 ×ℂ Iio 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Iio 0 ×ℂ Iio 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), x ≤ 0 → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), x ≤ 0 → ‖f (↑x * I)‖ ≤ C
z : ℂ
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
H : MapsTo Neg.neg (Ioi 0 ×ℂ Ioi 0) (Iio 0 ×ℂ Iio 0)
⊢ ‖(f ∘ Neg.neg) z‖ ≤ C

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

tactic: simpa only [mem_reProdIm, neg_re, neg_im, neg_lt_zero, mem_Iio] using hw
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
a b C : ℝ
f g : ℂ → E
hd : DiffContOnCl ℂ f (Iio 0 ×ℂ Iio 0)
hB : ∃ c, c < 2 ∧ ∃ B, f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Iio 0 ×ℂ Iio 0)] fun z => expR (B * ↑Complex.abs z ^ c)
hre : ∀ (x : ℝ), x ≤ 0 → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), x ≤ 0 → ‖f (↑x * I)‖ ≤ C
z : ℂ
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
w : ℂ
hw : w ∈ Ioi 0 ×ℂ Ioi 0
⊢ -w ∈ Iio 0 ×ℂ Iio 0

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

tactic: refine ⟨c, hc, B, ?_⟩
state_before: case 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 (Iio 0 ×ℂ Iio 0)
hre : ∀ (x : ℝ), x ≤ 0 → ‖f ↑x‖ ≤ C
him : ∀ (x : ℝ), x ≤ 0 → ‖f (↑x * I)‖ ≤ C
z : ℂ
hz_re : 0 ≤ z.re
hz_im : 0 ≤ z.im
H : MapsTo Neg.neg (Ioi 0 ×ℂ Ioi 0) (Iio 0 ×ℂ Iio 0)
c : ℝ
hc : c < 2
B : ℝ
hO : f =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Iio 0 ×ℂ Iio 0)] fun z => expR (B * ↑Complex.abs z ^ c)
⊢ ∃ c,
    c < 2 ∧
      ∃ B, (f ∘ Neg.neg) =O[comap (↑Complex.abs) atTop ⊓ 𝓟 (Ioi 0 ×ℂ Ioi 0)] fun z => expR (B * ↑Complex.abs z ^ c)

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

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

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

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