Theorem: WeakFEPair.Λ_residue_k
File: Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean

tactic: simp_rw [Λ, smul_sub, (by simp : 𝓝 (P.ε • P.g₀) = 𝓝 (0 - 0 - -P.ε • P.g₀))]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ s) (𝓝[≠] ↑P.k) (𝓝 (P.ε • P.g₀))
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ₀ s - (s - ↑P.k) • (1 / s) • P.f₀ - (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀)
    (𝓝[≠] ↑P.k) (𝓝 (0 - 0 - -P.ε • P.g₀))

tactic: refine ((Tendsto.sub ?_ ?_).mono_left nhdsWithin_le_nhds).sub ?_
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ₀ s - (s - ↑P.k) • (1 / s) • P.f₀ - (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀)
    (𝓝[≠] ↑P.k) (𝓝 (0 - 0 - -P.ε • P.g₀))
state_after: case refine_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ₀ s) (𝓝 ↑P.k) (𝓝 0)

case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • (1 / s) • P.f₀) (𝓝 ↑P.k) (𝓝 0)

case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀) (𝓝[≠] ↑P.k) (𝓝 (-P.ε • P.g₀))

tactic: simp
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ 𝓝 (P.ε • P.g₀) = 𝓝 (0 - 0 - -P.ε • P.g₀)
state_after: no goals

tactic: rw [(by rw [sub_self, zero_smul] : 𝓝 0 = 𝓝 ((P.k - P.k : ℂ) • P.Λ₀ P.k))]
state_before: case refine_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ₀ s) (𝓝 ↑P.k) (𝓝 0)
state_after: case refine_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ₀ s) (𝓝 ↑P.k) (𝓝 ((↑P.k - ↑P.k) • P.Λ₀ ↑P.k))

tactic: apply ((continuous_sub_right _).smul P.differentiable_Λ₀.continuous).tendsto
state_before: case refine_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • P.Λ₀ s) (𝓝 ↑P.k) (𝓝 ((↑P.k - ↑P.k) • P.Λ₀ ↑P.k))
state_after: no goals

tactic: rw [sub_self, zero_smul]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ 𝓝 0 = 𝓝 ((↑P.k - ↑P.k) • P.Λ₀ ↑P.k)
state_after: no goals

tactic: rw [(by rw [sub_self, zero_smul] : 𝓝 0 = 𝓝 ((P.k - P.k : ℂ) • (1 / P.k : ℂ) • P.f₀))]
state_before: case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • (1 / s) • P.f₀) (𝓝 ↑P.k) (𝓝 0)
state_after: case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • (1 / s) • P.f₀) (𝓝 ↑P.k) (𝓝 ((↑P.k - ↑P.k) • (1 / ↑P.k) • P.f₀))

tactic: refine (continuous_sub_right _).continuousAt.smul (ContinuousAt.smul ?_ continuousAt_const)
state_before: case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • (1 / s) • P.f₀) (𝓝 ↑P.k) (𝓝 ((↑P.k - ↑P.k) • (1 / ↑P.k) • P.f₀))
state_after: case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ ContinuousAt (HDiv.hDiv 1) ↑P.k

tactic: exact continuousAt_const.div continuousAt_id (ofReal_ne_zero.mpr P.hk.ne')
state_before: case refine_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ ContinuousAt (HDiv.hDiv 1) ↑P.k
state_after: no goals

tactic: rw [sub_self, zero_smul]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ 𝓝 0 = 𝓝 ((↑P.k - ↑P.k) • (1 / ↑P.k) • P.f₀)
state_after: no goals

tactic: refine (tendsto_const_nhds.mono_left nhdsWithin_le_nhds).congr' ?_
state_before: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ Tendsto (fun s => (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀) (𝓝[≠] ↑P.k) (𝓝 (-P.ε • P.g₀))
state_after: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ (fun x => -P.ε • P.g₀) =ᶠ[𝓝[≠] ↑P.k] fun s => (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀

tactic: refine eventually_nhdsWithin_of_forall (fun s (hs : s ≠ P.k) ↦ ?_)
state_before: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
⊢ (fun x => -P.ε • P.g₀) =ᶠ[𝓝[≠] ↑P.k] fun s => (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀
state_after: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ (fun x => -P.ε • P.g₀) s = (fun s => (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀) s

tactic: simp_rw [← mul_smul]
state_before: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ (fun x => -P.ε • P.g₀) s = (fun s => (s - ↑P.k) • (P.ε / (↑P.k - s)) • P.g₀) s
state_after: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ -P.ε • P.g₀ = ((s - ↑P.k) * (P.ε / (↑P.k - s))) • P.g₀

tactic: congr 1
state_before: case refine_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ -P.ε • P.g₀ = ((s - ↑P.k) * (P.ε / (↑P.k - s))) • P.g₀
state_after: case refine_3.e_a
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ -P.ε = (s - ↑P.k) * (P.ε / (↑P.k - s))

tactic: field_simp [sub_ne_zero.mpr hs.symm]
state_before: case refine_3.e_a
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ -P.ε = (s - ↑P.k) * (P.ε / (↑P.k - s))
state_after: case refine_3.e_a
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ -(P.ε * (↑P.k - s)) = (s - ↑P.k) * P.ε

tactic: ring
state_before: case refine_3.e_a
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : s ≠ ↑P.k
⊢ -(P.ε * (↑P.k - s)) = (s - ↑P.k) * P.ε
state_after: no goals