Theorem: GaussianFourier.integral_cexp_neg_mul_sq_norm_add_of_euclideanSpace
File: Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean

Proof steps:
state_before: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
⊢ ∫ (v : EuclideanSpace ℝ ι), cexp (-b * ↑‖v‖ ^ 2 + c * ↑⟪w, v⟫_ℝ) =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
state_after: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ ∫ (v : EuclideanSpace ℝ ι), cexp (-b * ↑‖v‖ ^ 2 + c * ↑⟪w, v⟫_ℝ) =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
tactic: have := (EuclideanSpace.volume_preserving_measurableEquiv ι).symm
state_before: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ ∫ (v : EuclideanSpace ℝ ι), cexp (-b * ↑‖v‖ ^ 2 + c * ↑⟪w, v⟫_ℝ) =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
state_after: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ ∫ (x : ι → ℝ),
      cexp
        (-b * ↑‖(EuclideanSpace.measurableEquiv ι).symm x‖ ^ 2 +
          c * ↑⟪w, (EuclideanSpace.measurableEquiv ι).symm x⟫_ℝ) ∂volume =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
tactic: rw [← this.integral_comp (MeasurableEquiv.measurableEmbedding _)]
state_before: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ ∫ (x : ι → ℝ),
      cexp
        (-b * ↑‖(EuclideanSpace.measurableEquiv ι).symm x‖ ^ 2 +
          c * ↑⟪w, (EuclideanSpace.measurableEquiv ι).symm x⟫_ℝ) ∂volume =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
state_after: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ ∫ (x : ι → ℝ),
      cexp
        (-(b * ↑‖(EuclideanSpace.measurableEquiv ι).symm x‖ ^ 2) +
          c * ↑⟪w, (EuclideanSpace.measurableEquiv ι).symm x⟫_ℝ) ∂volume =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
tactic: simp only [neg_mul, Function.comp_def]
state_before: b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ ∫ (x : ι → ℝ),
      cexp
        (-(b * ↑‖(EuclideanSpace.measurableEquiv ι).symm x‖ ^ 2) +
          c * ↑⟪w, (EuclideanSpace.measurableEquiv ι).symm x⟫_ℝ) ∂volume =
    (↑π / b) ^ (↑(Fintype.card ι) / 2) * cexp (c ^ 2 * ↑‖w‖ ^ 2 / (4 * b))
state_after: case h.e'_2.h.e'_7.h.h.e'_1.h.e'_5
b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
y : ι → ℝ
⊢ -(b * ↑‖(EuclideanSpace.measurableEquiv ι).symm y‖ ^ 2) = -b * ∑ i : ι, ↑(y i) ^ 2

case h.e'_2.h.e'_7.h.h.e'_1.h.e'_6
b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
y : ι → ℝ
⊢ c * ↑⟪w, (EuclideanSpace.measurableEquiv ι).symm y⟫_ℝ = ∑ i : ι, c * ↑(w i) * ↑(y i)

case h.e'_3.h.e'_6.h.e'_1.h.e'_5
b : ℂ
V : Type u_1
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : FiniteDimensional ℝ V
inst✝² : MeasurableSpace V
inst✝¹ : BorelSpace V
ι : Type u_2
inst✝ : Fintype ι
hb : 0 < b.re
c : ℂ
w : EuclideanSpace ℝ ι
this : MeasurePreserving (⇑(EuclideanSpace.measurableEquiv ι).symm) volume volume
⊢ c ^ 2 * ↑‖w‖ ^ 2 = ∑ i : ι, (c * ↑(w i)) ^ 2
tactic: convert integral_cexp_neg_mul_sum_add hb (fun i ↦ c * w i) using 5 with _x y