[GOAL]
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
w : V
⊢ Integrable f ↔ Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
have hL : Continuous fun p : V × V => BilinForm.toLin bilinFormOfRealInner p.1 p.2 := continuous_inner
[GOAL]
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
w : V
hL : Continuous fun p => ↑(↑(↑BilinForm.toLin bilinFormOfRealInner) p.fst) p.snd
⊢ Integrable f ↔ Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
rw [VectorFourier.fourier_integral_convergent_iff Real.continuous_fourierChar hL w]
[GOAL]
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
w : V
hL : Continuous fun p => ↑(↑(↑BilinForm.toLin bilinFormOfRealInner) p.fst) p.snd
⊢ (Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-↑(↑(↑BilinForm.toLin bilinFormOfRealInner) v) w))) • f v) ↔
    Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
simp only [BilinForm.toLin_apply, bilinFormOfRealInner_apply]
[GOAL]
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
w : V
hw : w ≠ 0
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    -∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
have hiw : ⟪i w, w⟫ = 1 / 2 :=
  by
  rw [inner_smul_left, inner_self_eq_norm_sq_to_K, IsROrC.ofReal_real_eq_id, id.def, IsROrC.conj_to_real, ← div_div,
    div_mul_cancel]
  rwa [Ne.def, sq_eq_zero_iff, norm_eq_zero]
[GOAL]
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
w : V
hw : w ≠ 0
⊢ inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
[PROOFSTEP]
rw [inner_smul_left, inner_self_eq_norm_sq_to_K, IsROrC.ofReal_real_eq_id, id.def, IsROrC.conj_to_real, ← div_div,
  div_mul_cancel]
[GOAL]
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
w : V
hw : w ≠ 0
⊢ ‖w‖ ^ 2 ≠ 0
[PROOFSTEP]
rwa [Ne.def, sq_eq_zero_iff, norm_eq_zero]
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    -∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
have : (fun v : V => e[-⟪v, w⟫] • f (v + i w)) = fun v : V => (fun x : V => -e[-⟪x, w⟫] • f x) (v + i w) :=
  by
  ext1 v
  simp_rw [inner_add_left, hiw, Real.fourierChar_apply, neg_add, mul_add, ofReal_add, add_mul, exp_add]
  have : 2 * π * -(1 / 2) = -π := by field_simp; ring
  rw [this, ofReal_neg, neg_mul, exp_neg, exp_pi_mul_I, inv_neg, inv_one, mul_neg_one, neg_neg]
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
⊢ (fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)) = fun v =>
    (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)
[PROOFSTEP]
ext1 v
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
v : V
⊢ ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)
[PROOFSTEP]
simp_rw [inner_add_left, hiw, Real.fourierChar_apply, neg_add, mul_add, ofReal_add, add_mul, exp_add]
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
v : V
⊢ exp (↑(2 * π * -inner v w) * I) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w) =
    -(exp (↑(2 * π * -inner v w) * I) * exp (↑(2 * π * -(1 / 2)) * I)) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w)
[PROOFSTEP]
have : 2 * π * -(1 / 2) = -π := by field_simp; ring
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
v : V
⊢ 2 * π * -(1 / 2) = -π
[PROOFSTEP]
field_simp
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
v : V
⊢ 2 * π = π * 2
[PROOFSTEP]
ring
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
v : V
this : 2 * π * -(1 / 2) = -π
⊢ exp (↑(2 * π * -inner v w) * I) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w) =
    -(exp (↑(2 * π * -inner v w) * I) * exp (↑(2 * π * -(1 / 2)) * I)) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w)
[PROOFSTEP]
rw [this, ofReal_neg, neg_mul, exp_neg, exp_pi_mul_I, inv_neg, inv_one, mul_neg_one, neg_neg]
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
this :
  (fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)) = fun v =>
    (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    -∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
rw [this]
  -- Porting note:
    -- The next three lines had just been
    -- rw [integral_add_right_eq_self (fun (x : V) ↦ -(e[-⟪x, w⟫]) • f x)
    --       ((fun w ↦ (1 / (2 * ‖w‖ ^ (2 : ℕ))) • w) w)]
    -- Unfortunately now we need to specify `volume`, and call `dsimp`.
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
this :
  (fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)) = fun v =>
    (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)
⊢ ∫ (v : V), (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    -∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
have :=
  @integral_add_right_eq_self _ _ _ _ _ volume _ _ _ (fun (x : V) ↦ -(e[-⟪x, w⟫]) • f x)
    ((fun w ↦ (1 / (2 * ‖w‖ ^ (2 : ℕ))) • w) w)
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
this✝ :
  (fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)) = fun v =>
    (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)
this :
  ∫ (x : V),
      -↑(↑e (↑Multiplicative.ofAdd (-inner (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w))) •
        f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    ∫ (x : V), -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x
⊢ ∫ (v : V), (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    -∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
erw [this]
  -- Porting note, we can avoid `erw` by first calling `dsimp at this ⊢`.
[GOAL]
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
w : V
hw : w ≠ 0
hiw : inner ((fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w = 1 / 2
this✝ :
  (fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)) = fun v =>
    (fun x => -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x) (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)
this :
  ∫ (x : V),
      -↑(↑e (↑Multiplicative.ofAdd (-inner (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) w))) •
        f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w) =
    ∫ (x : V), -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x
⊢ ∫ (x : V), -↑(↑e (↑Multiplicative.ofAdd (-inner x w))) • f x =
    -∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
[PROOFSTEP]
simp only [neg_smul, integral_neg]
[GOAL]
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v =
    (1 / 2) •
      ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • (f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w))
[PROOFSTEP]
simp_rw [smul_sub]
[GOAL]
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v =
    (1 / 2) •
      ∫ (v : V),
        ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v -
          ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w)
[PROOFSTEP]
rw [integral_sub, fourier_integral_half_period_translate hw, sub_eq_add_neg, neg_neg, ← two_smul ℂ _, ←
  @smul_assoc _ _ _ _ _ _ (IsScalarTower.left ℂ), smul_eq_mul]
[GOAL]
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v =
    (1 / 2 * 2) • ∫ (a : V), ↑(↑e (↑Multiplicative.ofAdd (-inner a w))) • f a
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
case hg
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w)
[PROOFSTEP]
norm_num
[GOAL]
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v
case hg
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
w : V
hw : w ≠ 0
hf : Integrable f
⊢ Integrable fun v => ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f (v + (1 / (2 * ‖w‖ ^ 2)) • w)
[PROOFSTEP]
exacts [(fourier_integrand_integrable w).mp hf, (fourier_integrand_integrable w).mp (hf.comp_add_right _)]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) (cocompact V) (𝓝 0)
[PROOFSTEP]
refine' NormedAddCommGroup.tendsto_nhds_zero.mpr fun ε hε => _
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
⊢ ∀ᶠ (x : V) in cocompact V, ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v x))) • f v‖ < ε
[PROOFSTEP]
suffices ∃ T : ℝ, ∀ w : V, T ≤ ‖w‖ → ‖∫ v : V, e[-⟪v, w⟫] • f v‖ < ε
  by
  simp_rw [← comap_dist_left_atTop_eq_cocompact (0 : V), eventually_comap, eventually_atTop, dist_eq_norm', sub_zero]
  exact
    let ⟨T, hT⟩ := this
    ⟨T, fun b hb v hv => hT v (hv.symm ▸ hb)⟩
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
this : ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
⊢ ∀ᶠ (x : V) in cocompact V, ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v x))) • f v‖ < ε
[PROOFSTEP]
simp_rw [← comap_dist_left_atTop_eq_cocompact (0 : V), eventually_comap, eventually_atTop, dist_eq_norm', sub_zero]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
this : ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
⊢ ∃ a, ∀ (b : ℝ), b ≥ a → ∀ (a : V), ‖a‖ = b → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v a))) • f v‖ < ε
[PROOFSTEP]
exact
  let ⟨T, hT⟩ := this
  ⟨T, fun b hb v hv => hT v (hv.symm ▸ hb)⟩
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
obtain ⟨R, -, hR_bd⟩ : ∃ R : ℝ, 0 < R ∧ ∀ x : V, R ≤ ‖x‖ → f x = 0
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
⊢ ∃ R, 0 < R ∧ ∀ (x : V), R ≤ ‖x‖ → f x = 0
case 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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
exact hf2.exists_pos_le_norm
[GOAL]
case 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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
let A := {v : V | ‖v‖ ≤ R + 1}
[GOAL]
case 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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
have mA : MeasurableSet A :=
  by
  suffices A = Metric.closedBall (0 : V) (R + 1) by
    rw [this]
    exact Metric.isClosed_ball.measurableSet
  simp_rw [Metric.closedBall, dist_eq_norm, sub_zero]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
⊢ MeasurableSet A
[PROOFSTEP]
suffices A = Metric.closedBall (0 : V) (R + 1) by
  rw [this]
  exact Metric.isClosed_ball.measurableSet
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
this : A = Metric.closedBall 0 (R + 1)
⊢ MeasurableSet A
[PROOFSTEP]
rw [this]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
this : A = Metric.closedBall 0 (R + 1)
⊢ MeasurableSet (Metric.closedBall 0 (R + 1))
[PROOFSTEP]
exact Metric.isClosed_ball.measurableSet
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
⊢ A = Metric.closedBall 0 (R + 1)
[PROOFSTEP]
simp_rw [Metric.closedBall, dist_eq_norm, sub_zero]
[GOAL]
case 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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
obtain ⟨B, hB_pos, hB_vol⟩ : ∃ B : ℝ≥0, 0 < B ∧ volume A ≤ B :=
  by
  have hc : IsCompact A := by
    simpa only [Metric.closedBall, dist_eq_norm, sub_zero] using isCompact_closedBall (0 : V) _
  let B₀ := volume A
  replace hc : B₀ < ⊤ := hc.measure_lt_top
  refine' ⟨B₀.toNNReal + 1, add_pos_of_nonneg_of_pos B₀.toNNReal.coe_nonneg one_pos, _⟩
  rw [ENNReal.coe_add, ENNReal.coe_one, ENNReal.coe_toNNReal hc.ne]
  exact le_self_add
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
⊢ ∃ B, 0 < B ∧ ↑↑volume A ≤ ↑B
[PROOFSTEP]
have hc : IsCompact A := by simpa only [Metric.closedBall, dist_eq_norm, sub_zero] using isCompact_closedBall (0 : V) _
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
⊢ IsCompact A
[PROOFSTEP]
simpa only [Metric.closedBall, dist_eq_norm, sub_zero] using isCompact_closedBall (0 : V) _
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
hc : IsCompact A
⊢ ∃ B, 0 < B ∧ ↑↑volume A ≤ ↑B
[PROOFSTEP]
let B₀ := volume A
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
hc : IsCompact A
B₀ : ℝ≥0∞ := ↑↑volume A
⊢ ∃ B, 0 < B ∧ ↑↑volume A ≤ ↑B
[PROOFSTEP]
replace hc : B₀ < ⊤ := hc.measure_lt_top
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B₀ : ℝ≥0∞ := ↑↑volume A
hc : B₀ < ⊤
⊢ ∃ B, 0 < B ∧ ↑↑volume A ≤ ↑B
[PROOFSTEP]
refine' ⟨B₀.toNNReal + 1, add_pos_of_nonneg_of_pos B₀.toNNReal.coe_nonneg one_pos, _⟩
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B₀ : ℝ≥0∞ := ↑↑volume A
hc : B₀ < ⊤
⊢ ↑↑volume A ≤ ↑(ENNReal.toNNReal B₀ + 1)
[PROOFSTEP]
rw [ENNReal.coe_add, ENNReal.coe_one, ENNReal.coe_toNNReal hc.ne]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B₀ : ℝ≥0∞ := ↑↑volume A
hc : B₀ < ⊤
⊢ ↑↑volume A ≤ B₀ + 1
[PROOFSTEP]
exact le_self_add
[GOAL]
case 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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
obtain ⟨δ, hδ1, hδ2⟩ :=
  Metric.uniformContinuous_iff.mp (hf2.uniformContinuous_of_continuous hf1) (ε / B) (div_pos hε hB_pos)
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
⊢ ∃ T, ∀ (w : V), T ≤ ‖w‖ → ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
refine' ⟨1 / 2 + 1 / (2 * δ), fun w hw_bd => _⟩
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
⊢ ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
have hw_ne : w ≠ 0 := by
  contrapose! hw_bd; rw [hw_bd, norm_zero]
  exact add_pos one_half_pos (one_div_pos.mpr <| mul_pos two_pos hδ1)
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
⊢ w ≠ 0
[PROOFSTEP]
contrapose! hw_bd
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : w = 0
⊢ ‖w‖ < 1 / 2 + 1 / (2 * δ)
[PROOFSTEP]
rw [hw_bd, norm_zero]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : w = 0
⊢ 0 < 1 / 2 + 1 / (2 * δ)
[PROOFSTEP]
exact add_pos one_half_pos (one_div_pos.mpr <| mul_pos two_pos hδ1)
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
⊢ ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
have hw'_nm : ‖i w‖ = 1 / (2 * ‖w‖) := by
  rw [norm_smul, norm_div, Real.norm_of_nonneg (mul_nonneg two_pos.le <| sq_nonneg _), norm_one, sq, ← div_div, ←
    div_div, ← div_div, div_mul_cancel _ (norm_eq_zero.not.mpr hw_ne)]
    --* Rewrite integral in terms of `f v - f (v + w')`.
      -- Porting note: this was
      -- rw [norm_eq_abs, ← Complex.ofReal_one, ← ofReal_bit0, ← of_real_div,
      --   Complex.abs_of_nonneg one_half_pos.le]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
⊢ ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
[PROOFSTEP]
rw [norm_smul, norm_div, Real.norm_of_nonneg (mul_nonneg two_pos.le <| sq_nonneg _), norm_one, sq, ← div_div, ← div_div,
  ← div_div, div_mul_cancel _ (norm_eq_zero.not.mpr hw_ne)]
  --* Rewrite integral in terms of `f v - f (v + w')`.
    -- Porting note: this was
    -- rw [norm_eq_abs, ← Complex.ofReal_one, ← ofReal_bit0, ← of_real_div,
    --   Complex.abs_of_nonneg one_half_pos.le]
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
⊢ ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
have : ‖(1 / 2 : ℂ)‖ = 1 / 2 := by norm_num
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
⊢ ‖1 / 2‖ = 1 / 2
[PROOFSTEP]
norm_num
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this : ‖1 / 2‖ = 1 / 2
⊢ ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v‖ < ε
[PROOFSTEP]
rw [fourier_integral_eq_half_sub_half_period_translate hw_ne (hf1.integrable_of_hasCompactSupport hf2), norm_smul, this]
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this : ‖1 / 2‖ = 1 / 2
⊢ 1 / 2 *
      ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • (f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w))‖ <
    ε
[PROOFSTEP]
have : ε = 1 / 2 * (2 * ε) := by field_simp; rw [mul_comm]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this : ‖1 / 2‖ = 1 / 2
⊢ ε = 1 / 2 * (2 * ε)
[PROOFSTEP]
field_simp
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this : ‖1 / 2‖ = 1 / 2
⊢ ε * 2 = 2 * ε
[PROOFSTEP]
rw [mul_comm]
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ 1 / 2 *
      ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • (f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w))‖ <
    ε
[PROOFSTEP]
rw [this, mul_lt_mul_left (one_half_pos : (0 : ℝ) < 1 / 2)]
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ‖∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • (f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w))‖ < 2 * ε
[PROOFSTEP]
refine' lt_of_le_of_lt (norm_integral_le_integral_norm _) _
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ∫ (a : V), ‖↑(↑e (↑Multiplicative.ofAdd (-inner a w))) • (f a - f (a + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w))‖ < 2 * ε
[PROOFSTEP]
simp_rw [norm_smul, norm_eq_abs, abs_coe_circle, one_mul]
  --* Show integral can be taken over A only.
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ∫ (a : V), ‖f a - f (a + (1 / (2 * ‖w‖ ^ 2)) • w)‖ < 2 * ε
[PROOFSTEP]
have int_A : ∫ v : V, ‖f v - f (v + i w)‖ = ∫ v in A, ‖f v - f (v + i w)‖ :=
  by
  refine' (set_integral_eq_integral_of_forall_compl_eq_zero fun v hv => _).symm
  dsimp only at hv 
  simp only [mem_setOf, not_le] at hv 
  rw [hR_bd v _, hR_bd (v + i w) _, sub_zero, norm_zero]
  · rw [← sub_neg_eq_add]
    refine' le_trans _ (norm_sub_norm_le _ _)
    rw [le_sub_iff_add_le, norm_neg]
    refine' le_trans _ hv.le
    rw [add_le_add_iff_left, hw'_nm, ← div_div]
    refine' (div_le_one <| norm_pos_iff.mpr hw_ne).mpr _
    refine' le_trans (le_add_of_nonneg_right <| one_div_nonneg.mpr <| _) hw_bd
    exact (mul_pos (zero_lt_two' ℝ) hδ1).le
  · exact ((le_add_iff_nonneg_right _).mpr zero_le_one).trans hv.le
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ∫ (v : V), ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
[PROOFSTEP]
refine' (set_integral_eq_integral_of_forall_compl_eq_zero fun v hv => _).symm
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : ¬v ∈ A
⊢ ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ = 0
[PROOFSTEP]
dsimp only at hv 
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : ¬v ∈ {v | ‖v‖ ≤ R + 1}
⊢ ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ = 0
[PROOFSTEP]
simp only [mem_setOf, not_le] at hv 
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ = 0
[PROOFSTEP]
rw [hR_bd v _, hR_bd (v + i w) _, sub_zero, norm_zero]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ R ≤ ‖v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖
[PROOFSTEP]
rw [← sub_neg_eq_add]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ R ≤ ‖v - -(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖
[PROOFSTEP]
refine' le_trans _ (norm_sub_norm_le _ _)
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ R ≤ ‖v‖ - ‖-(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖
[PROOFSTEP]
rw [le_sub_iff_add_le, norm_neg]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ R + ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ ≤ ‖v‖
[PROOFSTEP]
refine' le_trans _ hv.le
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ R + ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ ≤ R + 1
[PROOFSTEP]
rw [add_le_add_iff_left, hw'_nm, ← div_div]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ 1 / 2 / ‖w‖ ≤ 1
[PROOFSTEP]
refine' (div_le_one <| norm_pos_iff.mpr hw_ne).mpr _
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ 1 / 2 ≤ ‖w‖
[PROOFSTEP]
refine' le_trans (le_add_of_nonneg_right <| one_div_nonneg.mpr <| _) hw_bd
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ 0 ≤ 2 * δ
[PROOFSTEP]
exact (mul_pos (zero_lt_two' ℝ) hδ1).le
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
v : V
hv : R + 1 < ‖v‖
⊢ R ≤ ‖v‖
[PROOFSTEP]
exact ((le_add_iff_nonneg_right _).mpr zero_le_one).trans hv.le
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
int_A :
  ∫ (v : V), ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ∫ (a : V), ‖f a - f (a + (1 / (2 * ‖w‖ ^ 2)) • w)‖ < 2 * ε
[PROOFSTEP]
rw [int_A]
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
int_A :
  ∫ (v : V), ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
[PROOFSTEP]
clear int_A
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
[PROOFSTEP]
have bdA : ∀ v : V, v ∈ A → ‖‖f v - f (v + i w)‖‖ ≤ ε / B :=
  by
  simp_rw [norm_norm]
  simp_rw [dist_eq_norm] at hδ2 
  refine' fun x _ => (hδ2 _).le
  rw [sub_add_cancel', norm_neg, hw'_nm, ← div_div, div_lt_iff (norm_pos_iff.mpr hw_ne), ← div_lt_iff' hδ1, div_div]
  refine' (lt_add_of_pos_left _ _).trans_le hw_bd
  exact one_half_pos
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
[PROOFSTEP]
simp_rw [norm_norm]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
⊢ ∀ (v : V), v ∈ {v | ‖v‖ ≤ R + 1} → ‖f v - f (v + (1 / (2 * ‖w‖ ^ 2)) • w)‖ ≤ ε / ↑B
[PROOFSTEP]
simp_rw [dist_eq_norm] at hδ2 
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
hδ2 : ∀ {a b : V}, ‖a - b‖ < δ → ‖f a - f b‖ < ε / ↑B
⊢ ∀ (v : V), v ∈ {v | ‖v‖ ≤ R + 1} → ‖f v - f (v + (1 / (2 * ‖w‖ ^ 2)) • w)‖ ≤ ε / ↑B
[PROOFSTEP]
refine' fun x _ => (hδ2 _).le
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
hδ2 : ∀ {a b : V}, ‖a - b‖ < δ → ‖f a - f b‖ < ε / ↑B
x : V
x✝ : x ∈ {v | ‖v‖ ≤ R + 1}
⊢ ‖x - (x + (1 / (2 * ‖w‖ ^ 2)) • w)‖ < δ
[PROOFSTEP]
rw [sub_add_cancel', norm_neg, hw'_nm, ← div_div, div_lt_iff (norm_pos_iff.mpr hw_ne), ← div_lt_iff' hδ1, div_div]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
hδ2 : ∀ {a b : V}, ‖a - b‖ < δ → ‖f a - f b‖ < ε / ↑B
x : V
x✝ : x ∈ {v | ‖v‖ ≤ R + 1}
⊢ 1 / (2 * δ) < ‖w‖
[PROOFSTEP]
refine' (lt_add_of_pos_left _ _).trans_le hw_bd
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
hδ2 : ∀ {a b : V}, ‖a - b‖ < δ → ‖f a - f b‖ < ε / ↑B
x : V
x✝ : x ∈ {v | ‖v‖ ≤ R + 1}
⊢ 0 < 1 / 2
[PROOFSTEP]
exact one_half_pos
[GOAL]
case intro.intro.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
[PROOFSTEP]
have bdA2 := norm_set_integral_le_of_norm_le_const (hB_vol.trans_lt ENNReal.coe_lt_top) bdA ?_
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ‖∫ (x : V) in A, ‖f x - f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
case intro.intro.intro.intro.intro.intro.refine_1
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
⊢ AEStronglyMeasurable (fun x => ‖f x - f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖) (Measure.restrict volume A)
[PROOFSTEP]
swap
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_1
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
⊢ AEStronglyMeasurable (fun x => ‖f x - f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖) (Measure.restrict volume A)
[PROOFSTEP]
apply Continuous.aestronglyMeasurable
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_1.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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
⊢ Continuous fun x => ‖f x - f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
[PROOFSTEP]
exact continuous_norm.comp <| Continuous.sub hf1 <| Continuous.comp hf1 <| continuous_id'.add continuous_const
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝ : ‖1 / 2‖ = 1 / 2
this : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ‖∫ (x : V) in A, ‖f x - f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
[PROOFSTEP]
have : ‖_‖ = ∫ v : V in A, ‖f v - f (v + i w)‖ := Real.norm_of_nonneg (set_integral_nonneg mA fun x _ => norm_nonneg _)
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ‖∫ (x : V) in A, ‖f x - f (x + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
[PROOFSTEP]
rw [this] at bdA2 
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ < 2 * ε
[PROOFSTEP]
refine' bdA2.trans_lt _
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ε / ↑B * ENNReal.toReal (↑↑volume A) < 2 * ε
[PROOFSTEP]
rw [div_mul_eq_mul_div, div_lt_iff (NNReal.coe_pos.mpr hB_pos), mul_comm (2 : ℝ), mul_assoc, mul_lt_mul_left hε]
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ENNReal.toReal (↑↑volume A) < 2 * ↑B
[PROOFSTEP]
rw [← ENNReal.toReal_le_toReal] at hB_vol 
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ENNReal.toReal (↑↑volume A) ≤ ENNReal.toReal ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ENNReal.toReal (↑↑volume A) < 2 * ↑B
[PROOFSTEP]
refine' hB_vol.trans_lt _
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ENNReal.toReal (↑↑volume A) ≤ ENNReal.toReal ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ENNReal.toReal ↑B < 2 * ↑B
[PROOFSTEP]
rw [(by rfl : (↑B : ENNReal).toReal = ↑B), two_mul]
[GOAL]
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ENNReal.toReal (↑↑volume A) ≤ ENNReal.toReal ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ENNReal.toReal ↑B = ↑B
[PROOFSTEP]
rfl
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ENNReal.toReal (↑↑volume A) ≤ ENNReal.toReal ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ↑B < ↑B + ↑B
[PROOFSTEP]
exact lt_add_of_pos_left _ hB_pos
[GOAL]
case intro.intro.intro.intro.intro.intro.refine_2.ha
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ↑↑volume A ≠ ⊤
case intro.intro.intro.intro.intro.intro.refine_2.hb
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
hf1 : Continuous f
hf2 : HasCompactSupport f
ε : ℝ
hε : ε > 0
R : ℝ
hR_bd : ∀ (x : V), R ≤ ‖x‖ → f x = 0
A : Set V := {v | ‖v‖ ≤ R + 1}
mA : MeasurableSet A
B : ℝ≥0
hB_pos : 0 < B
hB_vol : ↑↑volume A ≤ ↑B
δ : ℝ
hδ1 : δ > 0
hδ2 : ∀ {a b : V}, dist a b < δ → dist (f a) (f b) < ε / ↑B
w : V
hw_bd : 1 / 2 + 1 / (2 * δ) ≤ ‖w‖
hw_ne : w ≠ 0
hw'_nm : ‖(fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w‖ = 1 / (2 * ‖w‖)
this✝¹ : ‖1 / 2‖ = 1 / 2
this✝ : ε = 1 / 2 * (2 * ε)
bdA : ∀ (v : V), v ∈ A → ‖‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ ≤ ε / ↑B
bdA2 : ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖ ≤ ε / ↑B * ENNReal.toReal (↑↑volume A)
this :
  ‖∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖‖ =
    ∫ (v : V) in A, ‖f v - f (v + (fun w => (1 / (2 * ‖w‖ ^ 2)) • w) w)‖
⊢ ↑B ≠ ⊤
[PROOFSTEP]
exacts [(hB_vol.trans_lt ENNReal.coe_lt_top).ne, ENNReal.coe_lt_top.ne]
[GOAL]
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
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) (cocompact V) (𝓝 0)
[PROOFSTEP]
by_cases hfi : Integrable f
[GOAL]
case pos
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
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) (cocompact V) (𝓝 0)
case neg
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
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) (cocompact V) (𝓝 0)
[PROOFSTEP]
swap
[GOAL]
case neg
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
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) (cocompact V) (𝓝 0)
[PROOFSTEP]
convert tendsto_const_nhds (a := (0 : E)) with w
[GOAL]
case h.e.h.e'_3.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
hfi : ¬Integrable f
w : V
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v = 0
[PROOFSTEP]
apply integral_undef
[GOAL]
case h.e.h.e'_3.h.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
hfi : ¬Integrable f
w : V
⊢ ¬Integrable fun a => ↑(↑e (↑Multiplicative.ofAdd (-inner a w))) • f a
[PROOFSTEP]
rwa [← fourier_integrand_integrable w]
[GOAL]
case pos
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
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) (cocompact V) (𝓝 0)
[PROOFSTEP]
refine' Metric.tendsto_nhds.mpr fun ε hε => _
[GOAL]
case pos
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
⊢ ∀ᶠ (x : V) in cocompact V, dist (∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v x))) • f v) 0 < ε
[PROOFSTEP]
obtain ⟨g, hg_supp, hfg, hg_cont, -⟩ := hfi.exists_hasCompactSupport_integral_sub_le (div_pos hε two_pos)
[GOAL]
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
⊢ ∀ᶠ (x : V) in cocompact V, dist (∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v x))) • f v) 0 < ε
[PROOFSTEP]
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 => _)
[GOAL]
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 : dist (∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • g v) 0 < ε / 2
⊢ dist (∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) 0 < ε
[PROOFSTEP]
rw [dist_eq_norm] at hI ⊢
[GOAL]
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
⊢ ‖(∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) - 0‖ < ε
[PROOFSTEP]
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
[GOAL]
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
⊢ ‖(∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) -
        ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • g v‖ ≤
    ε / 2
[PROOFSTEP]
refine' le_trans _ hfg
[GOAL]
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
⊢ ‖(∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) -
        ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • g v‖ ≤
    ∫ (x : V), ‖f x - g x‖
[PROOFSTEP]
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]
[GOAL]
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
⊢ ‖∫ (a : V), ↑(↑e (↑Multiplicative.ofAdd (-inner a w))) • (f - g) a‖ ≤ ∫ (x : V), ‖(f - g) x‖
[PROOFSTEP]
exact VectorFourier.norm_fourierIntegral_le_integral_norm e volume (BilinForm.toLin bilinFormOfRealInner) (f - g) w
[GOAL]
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‖ ≤
    ε / 2
⊢ ‖(∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) - 0‖ < ε
[PROOFSTEP]
replace := add_lt_add_of_le_of_lt this hI
[GOAL]
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‖ <
    ε / 2 + ε / 2
⊢ ‖(∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-inner v w))) • f v) - 0‖ < ε
[PROOFSTEP]
rw [add_halves] at this 
[GOAL]
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‖ < ε
[PROOFSTEP]
refine' ((le_of_eq _).trans (norm_add_le _ _)).trans_lt this
[GOAL]
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)‖
[PROOFSTEP]
simp only [sub_zero, sub_add_cancel]
[GOAL]
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)
[PROOFSTEP]
obtain ⟨C, _, _, hC⟩ := μ.isAddHaarMeasure_eq_smul_isAddHaarMeasure volume
[GOAL]
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)
[PROOFSTEP]
rw [hC]
[GOAL]
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)
[PROOFSTEP]
simp_rw [integral_smul_measure]
[GOAL]
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) (cocompact (V →L[ℝ] ℝ))
    (𝓝 0)
[PROOFSTEP]
rw [← (smul_zero _ : C.toReal • (0 : E) = 0)]
[GOAL]
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) (cocompact (V →L[ℝ] ℝ))
    (𝓝 (ENNReal.toReal C • 0))
[PROOFSTEP]
apply Tendsto.const_smul
[GOAL]
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) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
let A := (InnerProductSpace.toDual ℝ V).symm
[GOAL]
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) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
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]
[GOAL]
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
[PROOFSTEP]
ext1 w
[GOAL]
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
[PROOFSTEP]
congr 1 with v : 1
[GOAL]
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
[PROOFSTEP]
rw [← inner_conj_symm, IsROrC.conj_to_real, InnerProductSpace.toDual_symm_apply, Real.fourierChar_apply]
[GOAL]
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) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
rw [this]
[GOAL]
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)
[PROOFSTEP]
exact (tendsto_integral_exp_inner_smul_cocompact f).comp A.toHomeomorph.toCocompactMap.cocompact_tendsto'
[GOAL]
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)
[PROOFSTEP]
let V' := EuclideanSpace ℝ (Fin (finrank ℝ V))
[GOAL]
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)
[PROOFSTEP]
have A : V ≃L[ℝ] V' := toEuclidean
[GOAL]
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)
[PROOFSTEP]
borelize V'
[GOAL]
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)
[PROOFSTEP]
let Aₘ : MeasurableEquiv V V' := A.toHomeomorph.toMeasurableEquiv
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
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] }
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
⊢ ∀ (x y : V →L[ℝ] ℝ),
    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (x + y) =
      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) x +
        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) y
[PROOFSTEP]
intro t s
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
t s : V →L[ℝ] ℝ
⊢ (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s
[PROOFSTEP]
ext1 v
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
t s : V →L[ℝ] ℝ
v : V'
⊢ ↑((fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s)) v =
    ↑((fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s)
      v
[PROOFSTEP]
simp only [ContinuousLinearMap.coe_comp', Function.comp_apply, ContinuousLinearMap.add_apply]
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
⊢ ∀ (r : ℝ) (x : V →L[ℝ] ℝ),
    AddHom.toFun
        { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
          map_add' :=
            (_ :
              ∀ (t s : V →L[ℝ] ℝ),
                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
        (r • x) =
      ↑(RingHom.id ℝ) r •
        AddHom.toFun
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
          x
[PROOFSTEP]
intro x f
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
x : ℝ
f : V →L[ℝ] ℝ
⊢ AddHom.toFun
      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
        map_add' :=
          (_ :
            ∀ (t s : V →L[ℝ] ℝ),
              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
      (x • f) =
    ↑(RingHom.id ℝ) x •
      AddHom.toFun
        { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
          map_add' :=
            (_ :
              ∀ (t s : V →L[ℝ] ℝ),
                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
        f
[PROOFSTEP]
ext1 v
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
x : ℝ
f : V →L[ℝ] ℝ
v : V'
⊢ ↑(AddHom.toFun
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
          (x • f))
      v =
    ↑(↑(RingHom.id ℝ) x •
          AddHom.toFun
            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
              map_add' :=
                (_ :
                  ∀ (t s : V →L[ℝ] ℝ),
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
            f)
      v
[PROOFSTEP]
simp only [RingHom.id_apply, ContinuousLinearMap.coe_comp', Function.comp_apply, ContinuousLinearMap.smul_apply]
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
⊢ Function.LeftInverse (fun t => ContinuousLinearMap.comp t ↑A)
    {
          toAddHom :=
            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
              map_add' :=
                (_ :
                  ∀ (t s : V →L[ℝ] ℝ),
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
          map_smul' :=
            (_ :
              ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    (x • f) =
                  ↑(RingHom.id ℝ) x •
                    AddHom.toFun
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                      f) }.toAddHom.toFun
[PROOFSTEP]
intro w
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
w : V →L[ℝ] ℝ
⊢ (fun t => ContinuousLinearMap.comp t ↑A)
      (AddHom.toFun
        {
            toAddHom :=
              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                map_add' :=
                  (_ :
                    ∀ (t s : V →L[ℝ] ℝ),
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
            map_smul' :=
              (_ :
                ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                  AddHom.toFun
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                      (x • f) =
                    ↑(RingHom.id ℝ) x •
                      AddHom.toFun
                        { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                          map_add' :=
                            (_ :
                              ∀ (t s : V →L[ℝ] ℝ),
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                        f) }.toAddHom
        w) =
    w
[PROOFSTEP]
ext1 v
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
w : V →L[ℝ] ℝ
v : V
⊢ ↑((fun t => ContinuousLinearMap.comp t ↑A)
          (AddHom.toFun
            {
                toAddHom :=
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                map_smul' :=
                  (_ :
                    ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                      AddHom.toFun
                          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                            map_add' :=
                              (_ :
                                ∀ (t s : V →L[ℝ] ℝ),
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                          (x • f) =
                        ↑(RingHom.id ℝ) x •
                          AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            f) }.toAddHom
            w))
      v =
    ↑w v
[PROOFSTEP]
simp only [ContinuousLinearMap.coe_comp', ContinuousLinearEquiv.coe_coe, Function.comp_apply,
  ContinuousLinearEquiv.symm_apply_apply]
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
⊢ Function.RightInverse (fun t => ContinuousLinearMap.comp t ↑A)
    {
          toAddHom :=
            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
              map_add' :=
                (_ :
                  ∀ (t s : V →L[ℝ] ℝ),
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
          map_smul' :=
            (_ :
              ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    (x • f) =
                  ↑(RingHom.id ℝ) x •
                    AddHom.toFun
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                      f) }.toAddHom.toFun
[PROOFSTEP]
intro w
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
w : V' →L[ℝ] ℝ
⊢ AddHom.toFun
      {
          toAddHom :=
            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
              map_add' :=
                (_ :
                  ∀ (t s : V →L[ℝ] ℝ),
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
          map_smul' :=
            (_ :
              ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    (x • f) =
                  ↑(RingHom.id ℝ) x •
                    AddHom.toFun
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                      f) }.toAddHom
      ((fun t => ContinuousLinearMap.comp t ↑A) w) =
    w
[PROOFSTEP]
ext1 v
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
w : V' →L[ℝ] ℝ
v : V'
⊢ ↑(AddHom.toFun
          {
              toAddHom :=
                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                  map_add' :=
                    (_ :
                      ∀ (t s : V →L[ℝ] ℝ),
                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
              map_smul' :=
                (_ :
                  ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                    AddHom.toFun
                        { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                          map_add' :=
                            (_ :
                              ∀ (t s : V →L[ℝ] ℝ),
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                        (x • f) =
                      ↑(RingHom.id ℝ) x •
                        AddHom.toFun
                          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                            map_add' :=
                              (_ :
                                ∀ (t s : V →L[ℝ] ℝ),
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                          f) }.toAddHom
          ((fun t => ContinuousLinearMap.comp t ↑A) w))
      v =
    ↑w v
[PROOFSTEP]
simp only [ContinuousLinearMap.coe_comp', ContinuousLinearEquiv.coe_coe, Function.comp_apply,
  ContinuousLinearEquiv.apply_symm_apply]
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
let Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  { Adualₗ with
    continuous_toFun := Adualₗ.toLinearMap.continuous_of_finiteDimensional
    continuous_invFun := Adualₗ.symm.toLinearMap.continuous_of_finiteDimensional }
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
have : (μ.map Aₘ).IsAddHaarMeasure := Measure.MapContinuousLinearEquiv.isAddHaarMeasure _ A
[GOAL]
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'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
⊢ Tendsto (fun w => ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v ∂μ) (cocompact (V →L[ℝ] ℝ)) (𝓝 0)
[PROOFSTEP]
convert
  (tendsto_integral_exp_smul_cocompact_of_inner_product (f ∘ A.symm) (μ.map Aₘ)).comp
    Adual.toHomeomorph.toCocompactMap.cocompact_tendsto' with
  w
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v ∂μ =
    ((fun w =>
          ∫ (v : V'),
            ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • (f ∘ ↑(ContinuousLinearEquiv.symm A)) v ∂Measure.map (↑Aₘ) μ) ∘
        (Homeomorph.toCocompactMap (ContinuousLinearEquiv.toHomeomorph Adual)).toContinuousMap.toFun)
      w
[PROOFSTEP]
rw [Function.comp_apply, integral_map_equiv]
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
w : V →L[ℝ] ℝ
⊢ ∫ (v : V), ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v ∂μ =
    ∫ (x : V),
      ↑(↑e
            (↑Multiplicative.ofAdd
              (-↑(ContinuousMap.toFun
                      (Homeomorph.toCocompactMap (ContinuousLinearEquiv.toHomeomorph Adual)).toContinuousMap w)
                  (↑Aₘ x)))) •
        (f ∘ ↑(ContinuousLinearEquiv.symm A)) (↑Aₘ x) ∂μ
[PROOFSTEP]
congr 1 with v : 1
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
w : V →L[ℝ] ℝ
v : V
⊢ ↑(↑e (↑Multiplicative.ofAdd (-↑w v))) • f v =
    ↑(↑e
          (↑Multiplicative.ofAdd
            (-↑(ContinuousMap.toFun
                    (Homeomorph.toCocompactMap (ContinuousLinearEquiv.toHomeomorph Adual)).toContinuousMap w)
                (↑Aₘ v)))) •
      (f ∘ ↑(ContinuousLinearEquiv.symm A)) (↑Aₘ v)
[PROOFSTEP]
congr
[GOAL]
case h.e'_3.h.e_f.h.e_a.e_self.h.e_6.h.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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
w : V →L[ℝ] ℝ
v : V
⊢ ↑w v =
    ↑(ContinuousMap.toFun (Homeomorph.toCocompactMap (ContinuousLinearEquiv.toHomeomorph Adual)).toContinuousMap w)
      (↑Aₘ v)
[PROOFSTEP]
apply congr_arg w
[GOAL]
case h.e'_3.h.e_f.h.e_a.e_self.h.e_6.h.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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
w : V →L[ℝ] ℝ
v : V
⊢ v = ↑↑↑(ContinuousLinearEquiv.symm A) (↑Aₘ v)
[PROOFSTEP]
exact (ContinuousLinearEquiv.symm_apply_apply A v).symm
[GOAL]
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✝ : Measure.IsAddHaarMeasure μ
V' : Type := EuclideanSpace ℝ (Fin (finrank ℝ V))
A : V ≃L[ℝ] V'
this✝¹ : MeasurableSpace V' := borel V'
this✝ : BorelSpace V'
Aₘ : V ≃ᵐ V' := Homeomorph.toMeasurableEquiv (ContinuousLinearEquiv.toHomeomorph A)
Adualₗ : (V →L[ℝ] ℝ) ≃ₗ[ℝ] V' →L[ℝ] ℝ :=
  {
    toLinearMap :=
      {
        toAddHom :=
          { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
            map_add' :=
              (_ :
                ∀ (t s : V →L[ℝ] ℝ),
                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
        map_smul' :=
          (_ :
            ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
              AddHom.toFun
                  { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                    map_add' :=
                      (_ :
                        ∀ (t s : V →L[ℝ] ℝ),
                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                  (x • f) =
                ↑(RingHom.id ℝ) x •
                  AddHom.toFun
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                    f) },
    invFun := fun t => ContinuousLinearMap.comp t ↑A,
    left_inv :=
      (_ :
        ∀ (w : V →L[ℝ] ℝ),
          (fun t => ContinuousLinearMap.comp t ↑A)
              (AddHom.toFun
                {
                    toAddHom :=
                      { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                        map_add' :=
                          (_ :
                            ∀ (t s : V →L[ℝ] ℝ),
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                  (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                    map_smul' :=
                      (_ :
                        ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                          AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              (x • f) =
                            ↑(RingHom.id ℝ) x •
                              AddHom.toFun
                                { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                  map_add' :=
                                    (_ :
                                      ∀ (t s : V →L[ℝ] ℝ),
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                                f) }.toAddHom
                w) =
            w),
    right_inv :=
      (_ :
        ∀ (w : V' →L[ℝ] ℝ),
          AddHom.toFun
              {
                  toAddHom :=
                    { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                      map_add' :=
                        (_ :
                          ∀ (t s : V →L[ℝ] ℝ),
                            (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                              (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) },
                  map_smul' :=
                    (_ :
                      ∀ (x : ℝ) (f : V →L[ℝ] ℝ),
                        AddHom.toFun
                            { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                              map_add' :=
                                (_ :
                                  ∀ (t s : V →L[ℝ] ℝ),
                                    (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                            (x • f) =
                          ↑(RingHom.id ℝ) x •
                            AddHom.toFun
                              { toFun := fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A),
                                map_add' :=
                                  (_ :
                                    ∀ (t s : V →L[ℝ] ℝ),
                                      (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) (t + s) =
                                        (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) t +
                                          (fun t => ContinuousLinearMap.comp t ↑(ContinuousLinearEquiv.symm A)) s) }
                              f) }.toAddHom
              ((fun t => ContinuousLinearMap.comp t ↑A) w) =
            w) }
Adual : (V →L[ℝ] ℝ) ≃L[ℝ] V' →L[ℝ] ℝ :=
  ContinuousLinearEquiv.mk
    { toLinearMap := ↑Adualₗ, invFun := Adualₗ.invFun,
      left_inv := (_ : Function.LeftInverse Adualₗ.invFun Adualₗ.toFun),
      right_inv := (_ : Function.RightInverse Adualₗ.invFun Adualₗ.toFun) }
this : Measure.IsAddHaarMeasure (Measure.map (↑Aₘ) μ)
w : V →L[ℝ] ℝ
v : V
⊢ v = ↑(ContinuousLinearEquiv.symm A) (↑Aₘ v)
[PROOFSTEP]
exact (ContinuousLinearEquiv.symm_apply_apply A v).symm
