Theorem: MeromorphicAt.congr
File: Mathlib/Analysis/Analytic/Meromorphic.lean

tactic: rcases hf with ⟨m, hf⟩
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hf : MeromorphicAt f x
hfg : f =ᶠ[𝓝[≠] x] g
⊢ MeromorphicAt g x
state_after: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
⊢ MeromorphicAt g x

tactic: refine ⟨m + 1, ?_⟩
state_before: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
⊢ MeromorphicAt g x
state_after: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
⊢ AnalyticAt 𝕜 (fun z => (z - x) ^ (m + 1) • g z) x

tactic: have : AnalyticAt 𝕜 (fun z ↦ z - x) x := (analyticAt_id 𝕜 x).sub analyticAt_const
state_before: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
⊢ AnalyticAt 𝕜 (fun z => (z - x) ^ (m + 1) • g z) x
state_after: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
⊢ AnalyticAt 𝕜 (fun z => (z - x) ^ (m + 1) • g z) x

tactic: refine (this.smul hf).congr ?_
state_before: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
⊢ AnalyticAt 𝕜 (fun z => (z - x) ^ (m + 1) • g z) x
state_after: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
⊢ (fun x_1 => (x_1 - x) • (x_1 - x) ^ m • f x_1) =ᶠ[𝓝 x] fun z => (z - x) ^ (m + 1) • g z

tactic: rw [eventuallyEq_nhdsWithin_iff] at hfg
state_before: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : f =ᶠ[𝓝[≠] x] g
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
⊢ (fun x_1 => (x_1 - x) • (x_1 - x) ^ m • f x_1) =ᶠ[𝓝 x] fun z => (z - x) ^ (m + 1) • g z
state_after: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : ∀ᶠ (x_1 : 𝕜) in 𝓝 x, x_1 ∈ {x}ᶜ → f x_1 = g x_1
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
⊢ (fun x_1 => (x_1 - x) • (x_1 - x) ^ m • f x_1) =ᶠ[𝓝 x] fun z => (z - x) ^ (m + 1) • g z

tactic: filter_upwards [hfg] with z hz
state_before: case intro
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : ∀ᶠ (x_1 : 𝕜) in 𝓝 x, x_1 ∈ {x}ᶜ → f x_1 = g x_1
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
⊢ (fun x_1 => (x_1 - x) • (x_1 - x) ^ m • f x_1) =ᶠ[𝓝 x] fun z => (z - x) ^ (m + 1) • g z
state_after: case h
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : ∀ᶠ (x_1 : 𝕜) in 𝓝 x, x_1 ∈ {x}ᶜ → f x_1 = g x_1
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
z : 𝕜
hz : z ∈ {x}ᶜ → f z = g z
⊢ (z - x) • (z - x) ^ m • f z = (z - x) ^ (m + 1) • g z

tactic: rcases eq_or_ne z x with rfl | hn
state_before: case h
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : ∀ᶠ (x_1 : 𝕜) in 𝓝 x, x_1 ∈ {x}ᶜ → f x_1 = g x_1
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
z : 𝕜
hz : z ∈ {x}ᶜ → f z = g z
⊢ (z - x) • (z - x) ^ m • f z = (z - x) ^ (m + 1) • g z
state_after: case h.inl
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
m : ℕ
z : 𝕜
hfg : ∀ᶠ (x : 𝕜) in 𝓝 z, x ∈ {z}ᶜ → f x = g x
hf : AnalyticAt 𝕜 (fun z_1 => (z_1 - z) ^ m • f z_1) z
this : AnalyticAt 𝕜 (fun z_1 => z_1 - z) z
hz : z ∈ {z}ᶜ → f z = g z
⊢ (z - z) • (z - z) ^ m • f z = (z - z) ^ (m + 1) • g z

case h.inr
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : ∀ᶠ (x_1 : 𝕜) in 𝓝 x, x_1 ∈ {x}ᶜ → f x_1 = g x_1
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
z : 𝕜
hz : z ∈ {x}ᶜ → f z = g z
hn : z ≠ x
⊢ (z - x) • (z - x) ^ m • f z = (z - x) ^ (m + 1) • g z

tactic: simp
state_before: case h.inl
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
m : ℕ
z : 𝕜
hfg : ∀ᶠ (x : 𝕜) in 𝓝 z, x ∈ {z}ᶜ → f x = g x
hf : AnalyticAt 𝕜 (fun z_1 => (z_1 - z) ^ m • f z_1) z
this : AnalyticAt 𝕜 (fun z_1 => z_1 - z) z
hz : z ∈ {z}ᶜ → f z = g z
⊢ (z - z) • (z - z) ^ m • f z = (z - z) ^ (m + 1) • g z
state_after: no goals

tactic: rw [hz (Set.mem_compl_singleton_iff.mp hn), pow_succ', mul_smul]
state_before: case h.inr
𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f g : 𝕜 → E
x : 𝕜
hfg : ∀ᶠ (x_1 : 𝕜) in 𝓝 x, x_1 ∈ {x}ᶜ → f x_1 = g x_1
m : ℕ
hf : AnalyticAt 𝕜 (fun z => (z - x) ^ m • f z) x
this : AnalyticAt 𝕜 (fun z => z - x) x
z : 𝕜
hz : z ∈ {x}ᶜ → f z = g z
hn : z ≠ x
⊢ (z - x) • (z - x) ^ m • f z = (z - x) ^ (m + 1) • g z
state_after: no goals