l3lab/ntp-mathlib huggingface dataset:
/-- Riemann-Lebesgue lemma for functions on a real inner-product space: the integral
`∫ v, exp (-2 * π * ⟪w, v⟫ * I) • f v` tends to 0 as `w → ∞`. -/
theorem tendsto_integral_exp_inner_smul_cocompact :
    Tendsto (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) (cocompact V) (𝓝 0) := by
  by_cases hfi : Integrable f; swap
  · convert tendsto_const_nhds (a := (0 : E)) with w
    apply integral_undef
    rwa [← fourier_integrand_integrable w]
  refine' Metric.tendsto_nhds.mpr fun ε hε => _
  obtain ⟨g, hg_supp, hfg, hg_cont, -⟩ :=
    hfi.exists_hasCompactSupport_integral_sub_le (div_pos hε two_pos)
  refine'
    ((Metric.tendsto_nhds.mp
            (tendsto_integral_exp_inner_smul_cocompact_of_continuous_compact_support hg_cont
              hg_supp))
          _ (div_pos hε two_pos)).mp
      (eventually_of_forall fun w hI => _)
  rw [dist_eq_norm] at hI ⊢
  have : ‖(∫ v, e[-⟪v, w⟫] • f v) - ∫ v, e[-⟪v, w⟫] • g v‖ ≤ ε / 2 := by
    refine' le_trans _ hfg
    simp_rw [←
      integral_sub ((fourier_integrand_integrable w).mp hfi)
        ((fourier_integrand_integrable w).mp (hg_cont.integrable_of_hasCompactSupport hg_supp)),
      ← smul_sub, ← Pi.sub_apply]
    exact
      VectorFourier.norm_fourierIntegral_le_integral_norm e volume
        (BilinForm.toLin bilinFormOfRealInner) (f - g) w
  replace := add_lt_add_of_le_of_lt this hI
  rw [add_halves] at this
  refine' ((le_of_eq _).trans (norm_add_le _ _)).trans_lt this
  

Proof state:
case pos.intro.intro.intro.intro
E : Type u_1
V : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℂ E
f : V → E
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : MeasurableSpace V
inst✝³ : BorelSpace V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : FiniteDimensional ℝ V
inst✝ : CompleteSpace E
hfi : Integrable f
ε : ℝ
hε : ε > 0
g : V → E
hg_supp : HasCompactSupport g
hfg : ∫ (x : V), ‖f x - g x‖ ≤ ε / 2
hg_cont : Continuous g
w : V
hI : ‖(∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • g v) - 0‖ < ε / 2
this :
  ‖(∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) -
          ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • g v‖ +
      ‖(∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • g v) - 0‖ <
    ε
⊢ ‖(∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) - 0‖ =
    ‖((∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) -
          ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • g v) +
        ((∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • g v) - 0)‖

Next tactic:
simp only [sub_zero, sub_add_cancel]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  

Proof state:
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  

Proof state:
case intro.intro.intro
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
rw [hC]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  

Proof state:
case intro.intro.intro
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂C • volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
simp_rw [integral_smul_measure]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  

Proof state:
case intro.intro.intro
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
⊢ Tendsto (fun w => ENNReal.toReal C • ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂volume)
    (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  

Proof state:
case intro.intro.intro
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
⊢ Tendsto (fun w => ENNReal.toReal C • ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂volume)
    (cocompact (V →L[ℝ] ℝ)) (𝓝 (ENNReal.toReal C • 0))

Next tactic:
apply Tendsto.const_smul
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  

Proof state:
case intro.intro.intro.hf
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
⊢ Tendsto (fun x => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-x v))) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
let A := (InnerProductSpace.toDual ℝ V).symm
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  let A := (InnerProductSpace.toDual ℝ V).symm
  

Proof state:
case intro.intro.intro.hf
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := LinearIsometryEquiv.symm (InnerProductSpace.toDual ℝ V)
⊢ Tendsto (fun x => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-x v))) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
have : (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v) = (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) ∘ A := by
    ext1 w
    congr 1 with v : 1
    rw [← inner_conj_symm, IsROrC.conj_to_real, InnerProductSpace.toDual_symm_apply,
      Real.fourierChar_apply]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  let A := (InnerProductSpace.toDual ℝ V).symm
  have : (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v) = (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) ∘ A := by
    

Proof state:
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := LinearIsometryEquiv.symm (InnerProductSpace.toDual ℝ V)
⊢ (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v) =
    (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) ∘ ⇑A

Next tactic:
ext1 w
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  let A := (InnerProductSpace.toDual ℝ V).symm
  have : (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v) = (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) ∘ A := by
    ext1 w
    

Proof state:
case h
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := LinearIsometryEquiv.symm (InnerProductSpace.toDual ℝ V)
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v =
    ((fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) ∘ ⇑A) w

Next tactic:
congr 1 with v : 1
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  let A := (InnerProductSpace.toDual ℝ V).symm
  have : (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v) = (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) ∘ A := by
    ext1 w
    congr 1 with v : 1
    

Proof state:
case h.e_f.h
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := LinearIsometryEquiv.symm (InnerProductSpace.toDual ℝ V)
w : V →L[ℝ] ℝ
v : V
⊢ ↑(e (Multiplicative.ofAdd (-w v))) • f v = ↑(e (Multiplicative.ofAdd (-inner v (A w)))) • f v

Next tactic:
rw [← inner_conj_symm, IsROrC.conj_to_real, InnerProductSpace.toDual_symm_apply,
      Real.fourierChar_apply]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  let A := (InnerProductSpace.toDual ℝ V).symm
  have : (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v) = (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) ∘ A := by
    ext1 w
    congr 1 with v : 1
    rw [← inner_conj_symm, IsROrC.conj_to_real, InnerProductSpace.toDual_symm_apply,
      Real.fourierChar_apply]
  

Proof state:
case intro.intro.intro.hf
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := LinearIsometryEquiv.symm (InnerProductSpace.toDual ℝ V)
this :
  (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v) =
    (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) ∘ ⇑A
⊢ Tendsto (fun x => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-x v))) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
rw [this]
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional inner-product space, formulated
via dual space. **Do not use** -- it is only a stepping stone to
`tendsto_integral_exp_smul_cocompact` where the inner-product-space structure isn't required. -/
theorem tendsto_integral_exp_smul_cocompact_of_inner_product (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul volume
  rw [hC]
  simp_rw [integral_smul_measure]
  rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
  apply Tendsto.const_smul
  let A := (InnerProductSpace.toDual ℝ V).symm
  have : (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v) = (fun w : V => ∫ v, e[-⟪v, w⟫] • f v) ∘ A := by
    ext1 w
    congr 1 with v : 1
    rw [← inner_conj_symm, IsROrC.conj_to_real, InnerProductSpace.toDual_symm_apply,
      Real.fourierChar_apply]
  rw [this]
  

Proof state:
case intro.intro.intro.hf
E : Type u_1
V : Type u_2
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℂ E
f : V → E
inst✝⁶ : NormedAddCommGroup V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
C : ℝ≥0∞
left✝¹ : C ≠ 0
left✝ : C ≠ ⊤
hC : μ = C • volume
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := LinearIsometryEquiv.symm (InnerProductSpace.toDual ℝ V)
this :
  (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v) =
    (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) ∘ ⇑A
⊢ Tendsto ((fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-inner v w))) • f v) ∘ ⇑A) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
exact
    (tendsto_integral_exp_inner_smul_cocompact f).comp
      A.toHomeomorph.toCocompactMap.cocompact_tendsto'
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional real vector space, formulated via
dual space. -/
theorem tendsto_integral_exp_smul_cocompact (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  -- We have already proved the result for inner-product spaces, formulated in a way which doesn't
  -- refer to the inner product. So we choose an arbitrary inner-product space isomorphic to V
  -- and port the result over from there.
  

Proof state:
E : Type u_1
V : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℂ E
f : V → E
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : TopologicalSpace V
inst✝⁸ : TopologicalAddGroup V
inst✝⁷ : T2Space V
inst✝⁶ : MeasurableSpace V
inst✝⁵ : BorelSpace V
inst✝⁴ : Module ℝ V
inst✝³ : ContinuousSMul ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
let V' := EuclideanSpace ℝ (Fin (finrank ℝ V))
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional real vector space, formulated via
dual space. -/
theorem tendsto_integral_exp_smul_cocompact (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  -- We have already proved the result for inner-product spaces, formulated in a way which doesn't
  -- refer to the inner product. So we choose an arbitrary inner-product space isomorphic to V
  -- and port the result over from there.
  let V' := EuclideanSpace ℝ (Fin (finrank ℝ V))
  

Proof state:
E : Type u_1
V : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℂ E
f : V → E
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : TopologicalSpace V
inst✝⁸ : TopologicalAddGroup V
inst✝⁷ : T2Space V
inst✝⁶ : MeasurableSpace V
inst✝⁵ : BorelSpace V
inst✝⁴ : Module ℝ V
inst✝³ : ContinuousSMul ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
have A : V ≃L[ℝ] V' := toEuclidean
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional real vector space, formulated via
dual space. -/
theorem tendsto_integral_exp_smul_cocompact (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  -- We have already proved the result for inner-product spaces, formulated in a way which doesn't
  -- refer to the inner product. So we choose an arbitrary inner-product space isomorphic to V
  -- and port the result over from there.
  let V' := EuclideanSpace ℝ (Fin (finrank ℝ V))
  have A : V ≃L[ℝ] V' := toEuclidean
  

Proof state:
E : Type u_1
V : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℂ E
f : V → E
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : TopologicalSpace V
inst✝⁸ : TopologicalAddGroup V
inst✝⁷ : T2Space V
inst✝⁶ : MeasurableSpace V
inst✝⁵ : BorelSpace V
inst✝⁴ : Module ℝ V
inst✝³ : ContinuousSMul ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
borelize V'
/-- Riemann-Lebesgue lemma for functions on a finite-dimensional real vector space, formulated via
dual space. -/
theorem tendsto_integral_exp_smul_cocompact (μ : Measure V) [μ.IsAddHaarMeasure] :
    Tendsto (fun w : V →L[ℝ] ℝ => ∫ v, e[-w v] • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0) := by
  -- We have already proved the result for inner-product spaces, formulated in a way which doesn't
  -- refer to the inner product. So we choose an arbitrary inner-product space isomorphic to V
  -- and port the result over from there.
  let V' := EuclideanSpace ℝ (Fin (finrank ℝ V))
  have A : V ≃L[ℝ] V' := toEuclidean
  borelize V'
  -- various equivs derived from A
  

Proof state:
E : Type u_1
V : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℂ E
f : V → E
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : TopologicalSpace V
inst✝⁸ : TopologicalAddGroup V
inst✝⁷ : T2Space V
inst✝⁶ : MeasurableSpace V
inst✝⁵ : BorelSpace V
inst✝⁴ : Module ℝ V
inst✝³ : ContinuousSMul ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : CompleteSpace E
μ : Measure V
inst✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
⊢ Tendsto (fun w => ∫ (v : V), ↑(e (Multiplicative.ofAdd (-w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

Next tactic:
let Aₘ : MeasurableEquiv V V' := A.toHomeomorph.toMeasurableEquiv