-- Mathlib/Analysis/Fourier/FourierTransformDeriv.lean
lemma hasDerivAt_fourierIntegral
    {f : ℝ → E} (hf : Integrable f) (hf' : Integrable (fun x : ℝ ↦ x • f x)) (w : ℝ) :
    HasDerivAt (𝓕 f) (𝓕 (fun x : ℝ ↦ (-2 * π * I * x) • f x) w) w

Proof state:
case h.e'_9
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
h_int : Integrable (fun v => 𝐞 (-((LinearMap.mul ℝ ℝ) v) w) • fourierSMulRight L f v) volume
⊢ 𝓕 (fun x => -2 • ↑π • I • ↑x • f x) w = ∫ (x : ℝ), 𝐞 (-((LinearMap.mul ℝ ℝ) x) w) • -2 • ↑π • I • x • f x ∂volume

Tactic:
rfl

Result:
no goals

Proof state:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
⊢ Integrable (fun v => ‖v‖ * ‖f v‖) volume

Tactic:
simpa only [norm_smul] using hf'.norm

Result:
no goals

Proof state:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
⊢ Integrable (fun v => fourierSMulRight L f v) volume

Tactic:
suffices Integrable fun v ↦ ContinuousLinearMap.smulRight (L v) (f v) by
  simpa only [fourierSMulRight, neg_smul, neg_mul, Pi.smul_apply] using this.smul (-2 * π * I)

Result:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
⊢ Integrable (fun v => (L v).smulRight (f v)) volume

Proof state:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
h_int : Integrable (fun v => 𝐞 (-((LinearMap.mul ℝ ℝ) v) w) • fourierSMulRight L f v) volume
⊢ HasDerivAt (𝓕 f) (𝓕 (fun x => (-2 * ↑π * I * ↑x) • f x) w) w

Tactic:
convert (VectorFourier.hasFDerivAt_fourierIntegral L hf hf'' w).hasDerivAt using 1

Result:
case h.e'_9
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
h_int : Integrable (fun v => 𝐞 (-((LinearMap.mul ℝ ℝ) v) w) • fourierSMulRight L f v) volume
⊢ 𝓕 (fun x => (-2 * ↑π * I * ↑x) • f x) w =
    (VectorFourier.fourierIntegral 𝐞 volume L.toLinearMap₂ (fourierSMulRight L f) w) 1

Proof state:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
⊢ HasDerivAt (𝓕 f) (𝓕 (fun x => (-2 * ↑π * I * ↑x) • f x) w) w

Tactic:
let L := ContinuousLinearMap.mul ℝ ℝ

Result:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
⊢ HasDerivAt (𝓕 f) (𝓕 (fun x => (-2 * ↑π * I * ↑x) • f x) w) w

Proof state:
case h.e'_9
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
h_int : Integrable (fun v => 𝐞 (-((LinearMap.mul ℝ ℝ) v) w) • fourierSMulRight L f v) volume
⊢ 𝓕 (fun x => (-2 * ↑π * I * ↑x) • f x) w =
    ∫ (x : ℝ), (𝐞 (-((LinearMap.mul ℝ ℝ) x) w) • fourierSMulRight L f x) 1 ∂volume

Tactic:
simp_rw [ContinuousLinearMap.smul_apply, fourierSMulRight, ContinuousLinearMap.smul_apply,
  ContinuousLinearMap.smulRight_apply, L, ContinuousLinearMap.mul_apply', mul_one,
  ← neg_mul, mul_smul]

Result:
case h.e'_9
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℝ → E
hf : Integrable f volume
hf' : Integrable (fun x => x • f x) volume
w : ℝ
hf'' : Integrable (fun v => ‖v‖ * ‖f v‖) volume
L : ℝ →L[ℝ] ℝ →L[ℝ] ℝ := ContinuousLinearMap.mul ℝ ℝ
h_int : Integrable (fun v => 𝐞 (-((LinearMap.mul ℝ ℝ) v) w) • fourierSMulRight L f v) volume
⊢ 𝓕 (fun x => -2 • ↑π • I • ↑x • f x) w = ∫ (x : ℝ), 𝐞 (-((LinearMap.mul ℝ ℝ) x) w) • -2 • ↑π • I • x • f x ∂volume