Theorem: fourierIntegral_gaussian_innerProductSpace'
File: Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean

tactic: simp only [neg_mul, fourierIntegral_eq', ofReal_neg, ofReal_mul, ofReal_ofNat,
  smul_eq_mul, ← Complex.exp_add, real_inner_comm w]
state_before: b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
⊢ 𝓕 (fun v => cexp (-b * ↑‖v‖ ^ 2 + 2 * ↑π * I * ↑⟪x, v⟫_ℝ)) w =
    (↑π / b) ^ (↑(FiniteDimensional.finrank ℝ V) / 2) * cexp (-↑π ^ 2 * ↑‖x - w‖ ^ 2 / b)
state_after: b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
⊢ ∫ (v : V), cexp (-(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ)) =
    (↑π / b) ^ (↑(FiniteDimensional.finrank ℝ V) / 2) * cexp (-(↑π ^ 2 * ↑‖x - w‖ ^ 2) / b)

tactic: convert integral_cexp_neg_mul_sq_norm_add hb (2 * π * Complex.I) (x - w) using 3 with v
state_before: b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
⊢ ∫ (v : V), cexp (-(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ)) =
    (↑π / b) ^ (↑(FiniteDimensional.finrank ℝ V) / 2) * cexp (-(↑π ^ 2 * ↑‖x - w‖ ^ 2) / b)
state_after: case h.e'_2.h.e'_7.h
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w v : V
⊢ cexp (-(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ)) =
    cexp (-b * ↑‖v‖ ^ 2 + 2 * ↑π * I * ↑⟪x - w, v⟫_ℝ)

case h.e'_3.h.e'_6.h.e'_1
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
⊢ -(↑π ^ 2 * ↑‖x - w‖ ^ 2) / b = (2 * ↑π * I) ^ 2 * ↑‖x - w‖ ^ 2 / (4 * b)

tactic: congr 1
state_before: case h.e'_2.h.e'_7.h
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w v : V
⊢ cexp (-(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ)) =
    cexp (-b * ↑‖v‖ ^ 2 + 2 * ↑π * I * ↑⟪x - w, v⟫_ℝ)
state_after: case h.e'_2.h.e'_7.h.e_z
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w v : V
⊢ -(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ) = -b * ↑‖v‖ ^ 2 + 2 * ↑π * I * ↑⟪x - w, v⟫_ℝ

tactic: simp [inner_sub_left]
state_before: case h.e'_2.h.e'_7.h.e_z
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w v : V
⊢ -(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ) = -b * ↑‖v‖ ^ 2 + 2 * ↑π * I * ↑⟪x - w, v⟫_ℝ
state_after: case h.e'_2.h.e'_7.h.e_z
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w v : V
⊢ -(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ) =
    -(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * (↑⟪x, v⟫_ℝ - ↑⟪w, v⟫_ℝ)

tactic: ring
state_before: case h.e'_2.h.e'_7.h.e_z
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w v : V
⊢ -(2 * ↑π * ↑⟪w, v⟫_ℝ * I) + (-(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * ↑⟪x, v⟫_ℝ) =
    -(b * ↑‖v‖ ^ 2) + 2 * ↑π * I * (↑⟪x, v⟫_ℝ - ↑⟪w, v⟫_ℝ)
state_after: no goals

tactic: have : b ≠ 0 := by contrapose! hb; rw [hb, zero_re]
state_before: case h.e'_3.h.e'_6.h.e'_1
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
⊢ -(↑π ^ 2 * ↑‖x - w‖ ^ 2) / b = (2 * ↑π * I) ^ 2 * ↑‖x - w‖ ^ 2 / (4 * b)
state_after: case h.e'_3.h.e'_6.h.e'_1
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
this : b ≠ 0
⊢ -(↑π ^ 2 * ↑‖x - w‖ ^ 2) / b = (2 * ↑π * I) ^ 2 * ↑‖x - w‖ ^ 2 / (4 * b)

tactic: field_simp [mul_pow]
state_before: case h.e'_3.h.e'_6.h.e'_1
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
this : b ≠ 0
⊢ -(↑π ^ 2 * ↑‖x - w‖ ^ 2) / b = (2 * ↑π * I) ^ 2 * ↑‖x - w‖ ^ 2 / (4 * b)
state_after: case h.e'_3.h.e'_6.h.e'_1
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
this : b ≠ 0
⊢ ↑π ^ 2 * ↑‖x - w‖ ^ 2 * (4 * b) = 2 ^ 2 * ↑π ^ 2 * ↑‖x - w‖ ^ 2 * b

tactic: ring
state_before: case h.e'_3.h.e'_6.h.e'_1
b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
this : b ≠ 0
⊢ ↑π ^ 2 * ↑‖x - w‖ ^ 2 * (4 * b) = 2 ^ 2 * ↑π ^ 2 * ↑‖x - w‖ ^ 2 * b
state_after: no goals

tactic: contrapose! hb
state_before: b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
hb : 0 < b.re
x w : V
⊢ b ≠ 0
state_after: b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
x w : V
hb : b = 0
⊢ b.re ≤ 0

tactic: rw [hb, zero_re]
state_before: b : ℂ
V : Type u_1
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : FiniteDimensional ℝ V
inst✝¹ : MeasurableSpace V
inst✝ : BorelSpace V
x w : V
hb : b = 0
⊢ b.re ≤ 0
state_after: no goals