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

tactic: let V' := EuclideanSpace ℝ (Fin (finrank ℝ V))
state_before: 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✝ : μ.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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: have A : V ≃L[ℝ] V' := toEuclidean
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
⊢ 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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: borelize V'
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
⊢ 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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: let Aₘ : MeasurableEquiv V V' := A.toHomeomorph.toMeasurableEquiv
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
⊢ 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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: let Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp A.symm.toContinuousLinearMap
    invFun := fun t => t.comp A.toContinuousLinearMap
    map_add' := by
      intro t s
      ext1 v
      simp only [ContinuousLinearMap.coe_comp', Function.comp_apply,
        ContinuousLinearMap.add_apply]
    map_smul' := by
      intro x f
      ext1 v
      simp only [RingHom.id_apply, ContinuousLinearMap.coe_comp', Function.comp_apply,
        ContinuousLinearMap.smul_apply]
    left_inv := by
      intro w
      ext1 v
      simp only [ContinuousLinearMap.coe_comp',
        ContinuousLinearEquiv.coe_coe, Function.comp_apply,
        ContinuousLinearEquiv.symm_apply_apply]
    right_inv := by
      intro w
      ext1 v
      simp only [ContinuousLinearMap.coe_comp',
        ContinuousLinearEquiv.coe_coe, Function.comp_apply,
        ContinuousLinearEquiv.apply_symm_apply] }
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
⊢ 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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: let Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  { Adualₗ with
    continuous_toFun := Adualₗ.toLinearMap.continuous_of_finiteDimensional
    continuous_invFun := Adualₗ.symm.toLinearMap.continuous_of_finiteDimensional }
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
⊢ 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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: have : (μ.map Aₘ).IsAddHaarMeasure := Measure.MapContinuousLinearEquiv.isAddHaarMeasure _ A
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
⊢ 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✝¹⁰ : 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)

tactic: convert
  (tendsto_integral_exp_smul_cocompact_of_inner_product (f ∘ A.symm) (μ.map Aₘ)).comp
    Adual.toHomeomorph.toCocompactMap.cocompact_tendsto' with w
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
⊢ Tendsto (fun w => ∫ (v : V), 𝐞 (-w v) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
state_after: case h.e'_3.h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), 𝐞 (-w v) • f v ∂μ =
    ((fun w => ∫ (v : V'), 𝐞 (-w v) • (f ∘ ⇑A.symm) v ∂Measure.map (⇑Aₘ) μ) ∘ Adual.toHomeomorph.toCocompactMap.toFun) w

tactic: rw [Function.comp_apply, integral_map_equiv]
state_before: case h.e'_3.h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), 𝐞 (-w v) • f v ∂μ =
    ((fun w => ∫ (v : V'), 𝐞 (-w v) • (f ∘ ⇑A.symm) v ∂Measure.map (⇑Aₘ) μ) ∘ Adual.toHomeomorph.toCocompactMap.toFun) w
state_after: case h.e'_3.h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), 𝐞 (-w v) • f v ∂μ =
    ∫ (x : V), 𝐞 (-(Adual.toHomeomorph.toCocompactMap.toFun w) (Aₘ x)) • (f ∘ ⇑A.symm) (Aₘ x) ∂μ

tactic: congr 1 with v : 1
state_before: case h.e'_3.h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), 𝐞 (-w v) • f v ∂μ =
    ∫ (x : V), 𝐞 (-(Adual.toHomeomorph.toCocompactMap.toFun w) (Aₘ x)) • (f ∘ ⇑A.symm) (Aₘ x) ∂μ
state_after: case h.e'_3.h.e_f.h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ 𝐞 (-w v) • f v = 𝐞 (-(Adual.toHomeomorph.toCocompactMap.toFun w) (Aₘ v)) • (f ∘ ⇑A.symm) (Aₘ v)

tactic: congr
state_before: case h.e'_3.h.e_f.h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ 𝐞 (-w v) • f v = 𝐞 (-(Adual.toHomeomorph.toCocompactMap.toFun w) (Aₘ v)) • (f ∘ ⇑A.symm) (Aₘ v)
state_after: case h.e'_3.h.e_f.h.e_a.h.e_6.h.e_a
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ w v = (Adual.toHomeomorph.toCocompactMap.toFun w) (Aₘ v)

case h.e'_3.h.e_f.h.e_a.e_a
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ v = A.symm (Aₘ v)

tactic: intro t s
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
⊢ ∀ (x y : V →L[ℝ] ℝ), (fun t => t.comp ↑A.symm) (x + y) = (fun t => t.comp ↑A.symm) x + (fun t => t.comp ↑A.symm) y
state_after: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
t s : V →L[ℝ] ℝ
⊢ (fun t => t.comp ↑A.symm) (t + s) = (fun t => t.comp ↑A.symm) t + (fun t => t.comp ↑A.symm) s

tactic: ext1 v
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
t s : V →L[ℝ] ℝ
⊢ (fun t => t.comp ↑A.symm) (t + s) = (fun t => t.comp ↑A.symm) t + (fun t => t.comp ↑A.symm) s
state_after: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
t s : V →L[ℝ] ℝ
v : V'
⊢ ((fun t => t.comp ↑A.symm) (t + s)) v = ((fun t => t.comp ↑A.symm) t + (fun t => t.comp ↑A.symm) s) v

tactic: simp only [ContinuousLinearMap.coe_comp', Function.comp_apply,
  ContinuousLinearMap.add_apply]
state_before: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
t s : V →L[ℝ] ℝ
v : V'
⊢ ((fun t => t.comp ↑A.symm) (t + s)) v = ((fun t => t.comp ↑A.symm) t + (fun t => t.comp ↑A.symm) s) v
state_after: no goals

tactic: intro x f
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
⊢ ∀ (m : ℝ) (x : V →L[ℝ] ℝ),
    { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun (m • x) =
      (RingHom.id ℝ) m • { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun x
state_after: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
x : ℝ
f : V →L[ℝ] ℝ
⊢ { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun (x • f) =
    (RingHom.id ℝ) x • { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun f

tactic: ext1 v
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
x : ℝ
f : V →L[ℝ] ℝ
⊢ { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun (x • f) =
    (RingHom.id ℝ) x • { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun f
state_after: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
x : ℝ
f : V →L[ℝ] ℝ
v : V'
⊢ ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun (x • f)) v =
    ((RingHom.id ℝ) x • { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun f) v

tactic: simp only [RingHom.id_apply, ContinuousLinearMap.coe_comp', Function.comp_apply,
  ContinuousLinearMap.smul_apply]
state_before: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
x : ℝ
f : V →L[ℝ] ℝ
v : V'
⊢ ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun (x • f)) v =
    ((RingHom.id ℝ) x • { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯ }.toFun f) v
state_after: no goals

tactic: intro w
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
⊢ Function.LeftInverse (fun t => t.comp ↑A) { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun
state_after: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V →L[ℝ] ℝ
⊢ (fun t => t.comp ↑A) ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun w) = w

tactic: ext1 v
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V →L[ℝ] ℝ
⊢ (fun t => t.comp ↑A) ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun w) = w
state_after: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V →L[ℝ] ℝ
v : V
⊢ ((fun t => t.comp ↑A) ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun w)) v = w v

tactic: simp only [ContinuousLinearMap.coe_comp',
  ContinuousLinearEquiv.coe_coe, Function.comp_apply,
  ContinuousLinearEquiv.symm_apply_apply]
state_before: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V →L[ℝ] ℝ
v : V
⊢ ((fun t => t.comp ↑A) ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun w)) v = w v
state_after: no goals

tactic: intro w
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
⊢ Function.RightInverse (fun t => t.comp ↑A) { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun
state_after: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V' →L[ℝ] ℝ
⊢ { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun ((fun t => t.comp ↑A) w) = w

tactic: ext1 v
state_before: 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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V' →L[ℝ] ℝ
⊢ { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun ((fun t => t.comp ↑A) w) = w
state_after: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V' →L[ℝ] ℝ
v : V'
⊢ ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun ((fun t => t.comp ↑A) w)) v = w v

tactic: simp only [ContinuousLinearMap.coe_comp',
  ContinuousLinearEquiv.coe_coe, Function.comp_apply,
  ContinuousLinearEquiv.apply_symm_apply]
state_before: case h
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
w : V' →L[ℝ] ℝ
v : V'
⊢ ({ toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯ }.toFun ((fun t => t.comp ↑A) w)) v = w v
state_after: no goals

tactic: apply congr_arg w
state_before: case h.e'_3.h.e_f.h.e_a.h.e_6.h.e_a
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ w v = (Adual.toHomeomorph.toCocompactMap.toFun w) (Aₘ v)
state_after: case h.e'_3.h.e_f.h.e_a.h.e_6.h.e_a
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ v = ↑↑A.symm (Aₘ v)

tactic: exact (ContinuousLinearEquiv.symm_apply_apply A v).symm
state_before: case h.e'_3.h.e_f.h.e_a.h.e_6.h.e_a
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ v = ↑↑A.symm (Aₘ v)
state_after: no goals

tactic: exact (ContinuousLinearEquiv.symm_apply_apply A v).symm
state_before: case h.e'_3.h.e_f.h.e_a.e_a
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✝ : μ.IsAddHaarMeasure
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := A.toHomeomorph.toMeasurableEquiv
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  { toFun := fun t => t.comp ↑A.symm, map_add' := ⋯, map_smul' := ⋯, invFun := fun t => t.comp ↑A, left_inv := ⋯,
    right_inv := ⋯ }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ := { toLinearEquiv := Adualₗ, continuous_toFun := ⋯, continuous_invFun := ⋯ }
this : (Measure.map (⇑Aₘ) μ).IsAddHaarMeasure
w : V →L[ℝ] ℝ
v : V
⊢ v = A.symm (Aₘ v)
state_after: no goals