Theorem: WeakFEPair.hasMellin
File: Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean

tactic: refine ⟨hc1, ?_⟩
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
⊢ HasMellin (fun x => P.f x - P.f₀) s (P.Λ s)
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s

tactic: have hc2 : HasMellin P.f_modif s (P.Λ₀ s) := P.toStrongFEPair.hasMellin s
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s

tactic: have hc3 : mellin (fun x ↦ f_modif P x - f P x + P.f₀) s =
  (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀ := P.f_modif_aux2 hs
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
hc3 : mellin (fun x => P.f_modif x - P.f x + P.f₀) s = (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s

tactic: have := (hasMellin_sub hc2.1 hc1).2
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
hc3 : mellin (fun x => P.f_modif x - P.f x + P.f₀) s = (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
hc3 : mellin (fun x => P.f_modif x - P.f x + P.f₀) s = (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀
this : mellin (fun t => P.f_modif t - (P.f t - P.f₀)) s = mellin P.f_modif s - mellin (fun x => P.f x - P.f₀) s
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s

tactic: simp_rw [← sub_add, hc3, eq_sub_iff_add_eq, ← eq_sub_iff_add_eq', ← sub_sub] at this
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
hc3 : mellin (fun x => P.f_modif x - P.f x + P.f₀) s = (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀
this : mellin (fun t => P.f_modif t - (P.f t - P.f₀)) s = mellin P.f_modif s - mellin (fun x => P.f x - P.f₀) s
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
hc3 : mellin (fun x => P.f_modif x - P.f x + P.f₀) s = (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀
this : mellin (fun x => P.f x - P.f₀) s = mellin P.f_modif s - (1 / s) • P.f₀ - (P.ε / (↑P.k - s)) • P.g₀
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s

tactic: exact this
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : WeakFEPair E
s : ℂ
hs : P.k < s.re
hc1 : MellinConvergent (fun x => P.f x - P.f₀) s
hc2 : HasMellin P.f_modif s (P.Λ₀ s)
hc3 : mellin (fun x => P.f_modif x - P.f x + P.f₀) s = (1 / s) • P.f₀ + (P.ε / (↑P.k - s)) • P.g₀
this : mellin (fun x => P.f x - P.f₀) s = mellin P.f_modif s - (1 / s) • P.f₀ - (P.ε / (↑P.k - s)) • P.g₀
⊢ mellin (fun x => P.f x - P.f₀) s = P.Λ s
state_after: no goals