Theorem: mellin_eq_fourierIntegral
File: Mathlib/Analysis/MellinInversion.lean

Proof steps:
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ mellin f s = ∫ (u : ℝ), cexp (-s * ↑u) • f (rexp (-u))
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ ∫ (x : ℝ) in univ, |(-rexp (-x))| • ↑((rexp ∘ Neg.neg) x) ^ (s - 1) • f ((rexp ∘ Neg.neg) x) =
    ∫ (u : ℝ), cexp (-s * ↑u) • f (rexp (-u))
tactic: rw [mellin, ← rexp_neg_image_aux, integral_image_eq_integral_abs_deriv_smul
        MeasurableSet.univ rexp_neg_deriv_aux rexp_neg_injOn_aux]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ ∫ (x : ℝ) in univ, |(-rexp (-x))| • ↑((rexp ∘ Neg.neg) x) ^ (s - 1) • f ((rexp ∘ Neg.neg) x) =
    ∫ (u : ℝ), cexp (-s * ↑u) • f (rexp (-u))
state_after: no goals
tactic: simp [rexp_cexp_aux]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ ∫ (u : ℝ), cexp (-s * ↑u) • f (rexp (-u)) =
    ∫ (u : ℝ), cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
state_after: case e_f
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ (fun u => cexp (-s * ↑u) • f (rexp (-u))) = fun u =>
    cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
tactic: congr
state_before: case e_f
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ (fun u => cexp (-s * ↑u) • f (rexp (-u))) = fun u =>
    cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
state_after: case e_f.h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ cexp (-s * ↑u) • f (rexp (-u)) = cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
tactic: ext u
state_before: case e_f.h
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ cexp (-s * ↑u) • f (rexp (-u)) = cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ cexp (-s * ↑u) • f (rexp (-u)) = cexp (-↑s.im * ↑u * I) • rexp (-s.re * u) • f (rexp (-u))

E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ cexp (-↑s.im * ↑u * I) • rexp (-s.re * u) • f (rexp (-u)) =
    cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
tactic: trans Complex.exp (-s.im * u * I) • (Real.exp (-s.re * u) • f (Real.exp (-u)))
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ cexp (-↑s.im * ↑u * I) • rexp (-s.re * u) • f (rexp (-u)) =
    cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u))
state_after: case e_a.e_z.e_a
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ -↑s.im * ↑u = ↑(-2 * π * (u * (s.im / (2 * π))))
tactic: congr
state_before: case e_a.e_z.e_a
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ -↑s.im * ↑u = ↑(-2 * π * (u * (s.im / (2 * π))))
state_after: case e_a.e_z.e_a
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ ↑u * -↑s.im = ↑(u * (s.im / (2 * π)) * (-2 * π))
tactic: rw [mul_comm (-s.im : ℂ) (u : ℂ), mul_comm (-2 * π)]
state_before: case e_a.e_z.e_a
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
⊢ ↑u * -↑s.im = ↑(u * (s.im / (2 * π)) * (-2 * π))
state_after: case e_a.e_z.e_a
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
this : 2 * ↑π ≠ 0
⊢ ↑u * -↑s.im = ↑(u * (s.im / (2 * π)) * (-2 * π))
tactic: have : 2 * (π : ℂ) ≠ 0 := by norm_num; exact pi_ne_zero
state_before: case e_a.e_z.e_a
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
u : ℝ
this : 2 * ↑π ≠ 0
⊢ ↑u * -↑s.im = ↑(u * (s.im / (2 * π)) * (-2 * π))
state_after: no goals
tactic: field_simp
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
s : ℂ
⊢ ∫ (u : ℝ), cexp (↑(-2 * π * (u * (s.im / (2 * π)))) * I) • rexp (-s.re * u) • f (rexp (-u)) =
    𝓕 (fun u => rexp (-s.re * u) • f (rexp (-u))) (s.im / (2 * π))
state_after: no goals
tactic: simp [fourierIntegral_eq']