Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedlemma · leanprover/lean4:v4.32.0

MellinConvolutionTransform

PrimeNumberTheoremAnd.MellinCalculus · PrimeNumberTheoremAnd/MellinCalculus.lean:357 to 432

Mathematical statement

Exact Lean statement

@[blueprint
  (title := "MellinConvolutionTransform")
  (statement := /--
  Let $f$ and $g$ be functions from $\mathbb{R}_{>0}$ to $\mathbb{C}$ such that
  \begin{equation}
    (x,y)\mapsto f(y)\frac{g(x/y)}yx^{s-1}
    \label{eq:assm_integrable_Mconv}
  \end{equation}
  is absolutely integrable on $[0,\infty)^2$.
  Then
  $$\mathcal{M}(f\ast g)(s) = \mathcal{M}(f)(s)\mathcal{M}(g)(s).$$
  -/)
  (proof := /--
  By Definitions \ref{MellinTransform} and \ref{MellinConvolution}
  $$
    \mathcal M(f\ast g)(s)=
    \int_0^\infty \int_0^\infty f(y)g(x/y)x^{s-1}\frac{dy}ydx
  $$
  By (\ref{eq:assm_integrable_Mconv}) and Fubini's theorem,
  $$
    \mathcal M(f\ast g)(s)=
    \int_0^\infty \int_0^\infty f(y)g(x/y)x^{s-1}dx\frac{dy}y
  $$
  in which we change variables from $x$ to $z=x/y$:
  $$
    \mathcal M(f\ast g)(s)=
    \int_0^\infty \int_0^\infty f(y)g(z)y^{s-1}z^{s-1}dzdy
  $$
  which, by Definition \ref{MellinTransform}, is
  $$
    \mathcal M(f\ast g)(s)=
    \mathcal M(f)(s)\mathcal M(g)(s)
    .
  $$
  -/)]
lemma MellinConvolutionTransform (f g : ℝ → ℂ) (s : ℂ)
    (hf : IntegrableOn (fun x y ↦ f y * g (x / y) / (y : ℂ) * (x : ℂ) ^ (s - 1)).uncurry
      (Ioi 0 ×ˢ Ioi 0)) :
    𝓜 (MellinConvolution f g) s = 𝓜 f s * 𝓜 g s

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  (title := "MellinConvolutionTransform")  (statement := /--  Let $f$ and $g$ be functions from $\mathbb{R}_{>0}$ to $\mathbb{C}$ such that  \begin{equation}    (x,y)\mapsto f(y)\frac{g(x/y)}yx^{s-1}    \label{eq:assm_integrable_Mconv}  \end{equation}  is absolutely integrable on $[0,\infty)^2$.  Then  $$\mathcal{M}(f\ast g)(s) = \mathcal{M}(f)(s)\mathcal{M}(g)(s).$$  -/)  (proof := /--  By Definitions \ref{MellinTransform} and \ref{MellinConvolution}  $$    \mathcal M(f\ast g)(s)=    \int_0^\infty \int_0^\infty f(y)g(x/y)x^{s-1}\frac{dy}ydx  $$  By (\ref{eq:assm_integrable_Mconv}) and Fubini's theorem,  $$    \mathcal M(f\ast g)(s)=    \int_0^\infty \int_0^\infty f(y)g(x/y)x^{s-1}dx\frac{dy}y  $$  in which we change variables from $x$ to $z=x/y$:  $$    \mathcal M(f\ast g)(s)=    \int_0^\infty \int_0^\infty f(y)g(z)y^{s-1}z^{s-1}dzdy  $$  which, by Definition \ref{MellinTransform}, is  $$    \mathcal M(f\ast g)(s)=    \mathcal M(f)(s)\mathcal M(g)(s)    .  $$  -/)]lemma MellinConvolutionTransform (f g :   ℂ) (s : ℂ)    (hf : IntegrableOn (fun x y  f y * g (x / y) / (y : ℂ) * (x : ℂ) ^ (s - 1)).uncurry      (Ioi 0 ×ˢ Ioi 0)) :    𝓜 (MellinConvolution f g) s = 𝓜 f s * 𝓜 g s := by  dsimp [mellin, MellinConvolution]  set f₁ :  ×  :=    fun x, y  f y * g (x / y) / (y : ℂ) * (x : ℂ) ^ (s - 1)  calc    _ = ∫ (x : ) in Ioi 0, ∫ (y : ) in Ioi 0, f₁ (x, y) := ?_    _ = ∫ (y : ) in Ioi 0, ∫ (x : ) in Ioi 0, f₁ (x, y) :=        setIntegral_integral_swap _ hf    _ = ∫ (y : ) in Ioi 0, ∫ (x : ) in Ioi 0,        f y * g (x / y) / ↑y * ↑x ^ (s - 1) := rfl    _ = ∫ (y : ) in Ioi 0, ∫ (x : ) in Ioi 0,        f y * g (x * y / y) / ↑y * ↑(x * y) ^ (s - 1) * y := ?_    _ = ∫ (y : ) in Ioi 0, ∫ (x : ) in Ioi 0,        f y * ↑y ^ (s - 1) * (g x * ↑x ^ (s - 1)) := ?_    _ = ∫ (y : ) in Ioi 0,        f y * ↑y ^ (s - 1) * ∫ (x : ) in Ioi 0, g x * ↑x ^ (s - 1) := ?_    _ = _ := integral_mul_const _ _  <;> try (rw [setIntegral_congr_fun (by simp)]; intro y hy; simp only [ofReal_mul])  · simp only [integral_mul_const, f₁, mul_comm]  · simp only [integral_mul_const]    have := integral_comp_mul_right_Ioi      (fun x  f y * g (x / y) / (y : ℂ) * (x : ℂ) ^ (s - 1)) 0 hy    have y_ne_zeroℂ : (y : ℂ)  0 := slitPlane_ne_zero (Or.inl hy)    field_simp at this     simp only [ofReal_mul, one_div, mul_zero, real_smul, ofReal_inv, field] at this     rw [ this]    field_simp    congr with x    ring_nf  · rw [setIntegral_congr_fun (by simp)]    intro x hx    have y_ne_zero : y  0 := ne_of_gt (mem_Ioi.mp hy)    have y_ne_zeroℂ : (y : ℂ)  0 := by exact_mod_cast y_ne_zero    field_simp    rw [mul_cpow_ofReal_nonneg hy.le hx.le]    ring  · apply integral_const_mul  · congr <;> ext <;> ring