Theorem: AnalyticAt.meromorphicAt_order
File: Mathlib/Analysis/Analytic/Meromorphic.lean

tactic: rcases eq_or_ne hf.order ⊤ with ho | ho
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
⊢ ⋯.order = WithTop.map Nat.cast hf.order
state_after: case inl
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order = ⊤
⊢ ⋯.order = WithTop.map Nat.cast hf.order

case inr
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
⊢ ⋯.order = WithTop.map Nat.cast hf.order

tactic: rw [ho, WithTop.map_top, order_eq_top_iff]
state_before: case inl
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order = ⊤
⊢ ⋯.order = WithTop.map Nat.cast hf.order
state_after: case inl
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order = ⊤
⊢ ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f z = 0

tactic: exact (hf.order_eq_top_iff.mp ho).filter_mono nhdsWithin_le_nhds
state_before: case inl
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order = ⊤
⊢ ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f z = 0
state_after: no goals

tactic: obtain ⟨n, hn⟩ := WithTop.ne_top_iff_exists.mp ho
state_before: case inr
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
⊢ ⋯.order = WithTop.map Nat.cast hf.order
state_after: case inr.intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
n : ℕ
hn : ↑n = hf.order
⊢ ⋯.order = WithTop.map Nat.cast hf.order

tactic: simp_rw [← hn, WithTop.map_coe, order_eq_int_iff, zpow_natCast]
state_before: case inr.intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
n : ℕ
hn : ↑n = hf.order
⊢ ⋯.order = WithTop.map Nat.cast hf.order
state_after: case inr.intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
n : ℕ
hn : ↑n = hf.order
⊢ ∃ g, AnalyticAt 𝕜 g x ∧ g x ≠ 0 ∧ ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f z = (z - x) ^ n • g z

tactic: rcases (hf.order_eq_nat_iff _).mp hn.symm with ⟨g, h1, h2, h3⟩
state_before: case inr.intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
n : ℕ
hn : ↑n = hf.order
⊢ ∃ g, AnalyticAt 𝕜 g x ∧ g x ≠ 0 ∧ ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f z = (z - x) ^ n • g z
state_after: case inr.intro.intro.intro.intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
n : ℕ
hn : ↑n = hf.order
g : 𝕜 → E
h1 : AnalyticAt 𝕜 g x
h2 : g x ≠ 0
h3 : ∀ᶠ (z : 𝕜) in 𝓝 x, f z = (z - x) ^ n • g z
⊢ ∃ g, AnalyticAt 𝕜 g x ∧ g x ≠ 0 ∧ ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f z = (z - x) ^ n • g z

tactic: exact ⟨g, h1, h2, h3.filter_mono nhdsWithin_le_nhds⟩
state_before: case inr.intro.intro.intro.intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
x : 𝕜
hf : AnalyticAt 𝕜 f x
ho : hf.order ≠ ⊤
n : ℕ
hn : ↑n = hf.order
g : 𝕜 → E
h1 : AnalyticAt 𝕜 g x
h2 : g x ≠ 0
h3 : ∀ᶠ (z : 𝕜) in 𝓝 x, f z = (z - x) ^ n • g z
⊢ ∃ g, AnalyticAt 𝕜 g x ∧ g x ≠ 0 ∧ ∀ᶠ (z : 𝕜) in 𝓝[≠] x, f z = (z - x) ^ n • g z
state_after: no goals