Theorem: tendsto_integral_exp_smul_cocompact_of_inner_product
File: Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean

tactic: rw [μ.isAddLeftInvariant_eq_smul volume]
state_before: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ.addHaarScalarFactor volume • volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: simp_rw [integral_smul_nnreal_measure]
state_before: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ.addHaarScalarFactor volume • volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => μ.addHaarScalarFactor volume • ∫ (v : V), 𝐞 (-w v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: rw [← (smul_zero _ : Measure.addHaarScalarFactor μ volume • (0 : E) = 0)]
state_before: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => μ.addHaarScalarFactor volume • ∫ (v : V), 𝐞 (-w v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => μ.addHaarScalarFactor volume • ∫ (v : V), 𝐞 (-w v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ))
    (𝓝 (μ.addHaarScalarFactor volume • 0))

tactic: apply Tendsto.const_smul
state_before: 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun w => μ.addHaarScalarFactor volume • ∫ (v : V), 𝐞 (-w v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ))
    (𝓝 (μ.addHaarScalarFactor volume • 0))
state_after: case 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun x => ∫ (v : V), 𝐞 (-x v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: let A := (InnerProductSpace.toDual ℝ V).symm
state_before: case 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✝ : μ.IsAddHaarMeasure
⊢ Tendsto (fun x => ∫ (v : V), 𝐞 (-x v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: case 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
⊢ Tendsto (fun x => ∫ (v : V), 𝐞 (-x v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: have : (fun w : V →L[ℝ] ℝ ↦ ∫ v, 𝐞 (-w v) • f v) = (fun w : V ↦ ∫ v, 𝐞 (-⟪v, w⟫) • f v) ∘ A := by
  ext1 w
  congr 1 with v : 1
  rw [← inner_conj_symm, RCLike.conj_to_real, InnerProductSpace.toDual_symm_apply]
state_before: case 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
⊢ Tendsto (fun x => ∫ (v : V), 𝐞 (-x v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: case 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
this : (fun w => ∫ (v : V), 𝐞 (-w v) • f v) = (fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A
⊢ Tendsto (fun x => ∫ (v : V), 𝐞 (-x v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: rw [this]
state_before: case 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
this : (fun w => ∫ (v : V), 𝐞 (-w v) • f v) = (fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A
⊢ Tendsto (fun x => ∫ (v : V), 𝐞 (-x v) • f v ∂volume) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: case 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
this : (fun w => ∫ (v : V), 𝐞 (-w v) • f v) = (fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A
⊢ Tendsto ((fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: exact (tendsto_integral_exp_inner_smul_cocompact f).comp
    A.toHomeomorph.toCocompactMap.cocompact_tendsto'
state_before: case 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
this : (fun w => ∫ (v : V), 𝐞 (-w v) • f v) = (fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A
⊢ Tendsto ((fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: no goals

tactic: ext1 w
state_before: 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
⊢ (fun w => ∫ (v : V), 𝐞 (-w v) • f v) = (fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A
state_after: 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), 𝐞 (-w v) • f v = ((fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A) w

tactic: congr 1 with v : 1
state_before: 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), 𝐞 (-w v) • f v = ((fun w => ∫ (v : V), 𝐞 (-⟪v, w⟫_ℝ) • f v) ∘ ⇑A) w
state_after: 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
w : V →L[ℝ] ℝ
v : V
⊢ 𝐞 (-w v) • f v = 𝐞 (-⟪v, A w⟫_ℝ) • f v

tactic: rw [← inner_conj_symm, RCLike.conj_to_real, InnerProductSpace.toDual_symm_apply]
state_before: 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✝ : μ.IsAddHaarMeasure
A : NormedSpace.Dual ℝ V ≃ₗᵢ⋆[ℝ] V := (InnerProductSpace.toDual ℝ V).symm
w : V →L[ℝ] ℝ
v : V
⊢ 𝐞 (-w v) • f v = 𝐞 (-⟪v, A w⟫_ℝ) • f v
state_after: no goals