Imports
/-
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
module
public import Physlib.SpaceAndTime.Space.Derivatives.Laplacian
public import Physlib.SpaceAndTime.Space.Integrals.NormPow
public import Physlib.Mathematics.Distribution.PowMulThe norm on space
i. Overview
The main content of this file is defining Space.normPowerSeries, a power series which is
differentiable everywhere, and which tends to the norm in the limit as n → ∞.
We use properties of this power series to prove various results about distributions involving norms.
ii. Key results
normPowerSeries : A power series which is differentiable everywhere, and in the limit
as n → ∞ tends to ‖x‖.
normPowerSeries_differentiable : The power series is differentiable everywhere.
normPowerSeries_tendsto : The power series tends to the norm in the limit as n → ∞.
distGrad_distOfFunction_norm_zpow : The gradient of the distribution defined by a power of the
norm.
distGrad_distOfFunction_log_norm : The gradient of the distribution defined by the logarithm
of the norm.
distDiv_norm_zpow_smul_repr_self_eq_smul : The divergence of the distribution defined by
x ↦ ‖x‖ ^ q • x.
distLaplacian_distOfFunction_norm_zpow : The Laplacian of the distribution defined by a power
of the norm.
distDiv_inv_pow_eq_dim : The divergence of x ↦ ‖x‖ ^ (-d) • x equals d * volume (ball 0 1)
times the Dirac delta at the origin.
distLaplacian_fundamentalSolution_norm_zpow : The Laplacian of the power-form fundamental
solution ‖x‖ ^ (2 - d), in every dimension (trivial at d = 0, 2).
distLaplacian_fundamentalSolution_log_norm : The Laplacian of the two-dimensional logarithmic
fundamental solution Real.log ‖x‖.
iii. Table of contents
A. The norm as a power series
A.1. Differentiability of the norm power series
A.2. The limit of the norm power series
A.3. The derivative of the norm power series
A.4. Limits of the derivative of the power series
A.5. The power series is AEStronglyMeasurable
A.6. Bounds on the norm power series
A.7. The IsDistBounded property of the norm power series
A.8. Differentiability of functions
A.9. Derivatives of functions
A.10. Gradients of distributions based on powers
A.10.1. The limits of gradients of distributions based on powers
A.11. Gradients of distributions based on logs
A.11.1. The limits of gradients of distributions based on logs
B. Distributions involving norms
B.1. The gradient of distributions based on powers
B.2. The gradient of distributions based on logs
B.3. Divergence of radial norm-power distributions
B.4. The Laplacian of distributions based on powers
B.5. Divergence equal dirac delta
B.6. The Laplacian of the fundamental solution
iv. References
@[expose] public sectionA. The norm as a power series
A power series which is differentiable everywhere, and in the limit
as n → ∞ tends to ‖x‖.
def normPowerSeries {d} : ℕ → Space d → ℝ := fun n x =>
√(‖x‖ ^ 2 + 1/(n + 1))lemma normPowerSeries_eq (n : ℕ) :
normPowerSeries (d := d) n = fun x => √(‖x‖ ^ 2 + 1/(n + 1)) := rfllemma normPowerSeries_eq_rpow {d} (n : ℕ) :
normPowerSeries (d := d) n = fun x => ((‖x‖ ^ 2 + 1/(n + 1))) ^ (1/2 : ℝ) :=
funext fun _ => Real.sqrt_eq_rpow _A.1. Differentiability of the norm power series
d:ℕn:ℕ⊢ Differentiable ℝ fun x => (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x
intro x d:ℕn:ℕx:Space d⊢ DifferentiableAt ℝ (fun x => (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x) x
exact ((differentiable_id.norm_sq ℝ).add_const _).differentiableAt.sqrt (by d:ℕn:ℕx:Space d⊢ ‖id x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 positivity All goals completed! 🐙)A.2. The limit of the norm power series
lemma normPowerSeries_tendsto {d} (x : Space d) (hx : x ≠ 0) :
Filter.Tendsto (fun n => normPowerSeries n x) Filter.atTop (𝓝 (‖x‖)) := by d:ℕx:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => normPowerSeries n x) Filter.atTop (𝓝 ‖x‖)
have h := (Real.continuous_sqrt.tendsto _).comp
((tendsto_const_nhds (x := ‖x‖ ^ 2)).add (tendsto_one_div_add_atTop_nhds_zero_nat (𝕜 := ℝ))) d:ℕx:Space dhx:x ≠ 0h:Filter.Tendsto ((fun x => √x) ∘ fun x_1 => ‖x‖ ^ 2 + 1 / (↑x_1 + 1)) Filter.atTop (𝓝 √(‖x‖ ^ 2 + 0))⊢ Filter.Tendsto (fun n => normPowerSeries n x) Filter.atTop (𝓝 ‖x‖)
simpa only [normPowerSeries_eq, Function.comp_def, add_zero,
Real.sqrt_sq (norm_pos_iff.mpr hx).le] using h All goals completed! 🐙lemma normPowerSeries_inv_tendsto {d} (x : Space d) (hx : x ≠ 0) :
Filter.Tendsto (fun n => (normPowerSeries n x)⁻¹) Filter.atTop (𝓝 (‖x‖⁻¹)) :=
(normPowerSeries_tendsto x hx).inv₀ (norm_ne_zero_iff.mpr hx)A.3. The derivative of the norm power series
lemma deriv_normPowerSeries {d} (n : ℕ) (x : Space d) (i : Fin d) :
∂[i] (normPowerSeries n) x = x i * (normPowerSeries n x)⁻¹ := by d:ℕn:ℕx:Space di:Fin d⊢ deriv i (normPowerSeries n) x = x.val i * (normPowerSeries n x)⁻¹
rw [deriv_eq_fderiv_basis, d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (normPowerSeries n) x) (basis i) = x.val i * (normPowerSeries n x)⁻¹ d:ℕn:ℕx:Space di:Fin d⊢ ((1 / (2 * √(‖x‖ ^ 2 + 1 / (↑n + 1)))) • fderiv ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) x) (basis i) =
x.val i * ((fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x)⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 normPowerSeries_eq, d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x) (basis i) = x.val i * ((fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x)⁻¹ d:ℕn:ℕx:Space di:Fin d⊢ ((1 / (2 * √(‖x‖ ^ 2 + 1 / (↑n + 1)))) • fderiv ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) x) (basis i) =
x.val i * ((fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x)⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 fderiv_sqrt d:ℕn:ℕx:Space di:Fin d⊢ ((1 / (2 * √(‖x‖ ^ 2 + 1 / (↑n + 1)))) • fderiv ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) x) (basis i) =
x.val i * ((fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x)⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 d:ℕn:ℕx:Space di:Fin d⊢ ((1 / (2 * √(‖x‖ ^ 2 + 1 / (↑n + 1)))) • fderiv ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) x) (basis i) =
x.val i * ((fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x)⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0] d:ℕn:ℕx:Space di:Fin d⊢ ((1 / (2 * √(‖x‖ ^ 2 + 1 / (↑n + 1)))) • fderiv ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) x) (basis i) =
x.val i * ((fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x)⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0
simp only [one_div, mul_inv_rev, fderiv_add_const, FunLike.coe_smul, Pi.smul_apply,
smul_eq_mul] d:ℕn:ℕx:Space di:Fin d⊢ (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹ * 2⁻¹ * (fderiv ℝ (fun y => ‖y‖ ^ 2) x) (basis i) = x.val i * (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0
rw [← deriv_eq_fderiv_basis, d:ℕn:ℕx:Space di:Fin d⊢ (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹ * 2⁻¹ * deriv i (fun y => ‖y‖ ^ 2) x = x.val i * (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 d:ℕn:ℕx:Space di:Fin d⊢ (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹ * 2⁻¹ * (2 * x.val i) = x.val i * (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 deriv_norm_sq d:ℕn:ℕx:Space di:Fin d⊢ (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹ * 2⁻¹ * (2 * x.val i) = x.val i * (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 d:ℕn:ℕx:Space di:Fin d⊢ (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹ * 2⁻¹ * (2 * x.val i) = x.val i * (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0] d:ℕn:ℕx:Space di:Fin d⊢ (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹ * 2⁻¹ * (2 * x.val i) = x.val i * (√(‖x‖ ^ 2 + (↑n + 1)⁻¹))⁻¹hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0
ring hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) xhx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0
· hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => ‖x‖ ^ 2 + 1 / (↑n + 1)) x exact ((differentiable_id.norm_sq ℝ).add_const _).differentiableAt All goals completed! 🐙
· hx d:ℕn:ℕx:Space di:Fin d⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≠ 0 positivity All goals completed! 🐙
lemma fderiv_normPowerSeries {d} (n : ℕ) (x y : Space d) :
fderiv ℝ (fun (x : Space d) => normPowerSeries n x) x y =
⟪y, x⟫_ℝ * (normPowerSeries n x)⁻¹ := by d:ℕn:ℕx:Space dy:Space d⊢ (fderiv ℝ (fun x => normPowerSeries n x) x) y = ⟪y, x⟫_ℝ * (normPowerSeries n x)⁻¹
rw [fderiv_eq_sum_deriv, d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = ⟪y, x⟫_ℝ * (normPowerSeries n x)⁻¹ d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = ∑ i, y.val i * x.val i * (normPowerSeries n x)⁻¹ inner_eq_sum, d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = (∑ i, y.val i * x.val i) * (normPowerSeries n x)⁻¹ d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = ∑ i, y.val i * x.val i * (normPowerSeries n x)⁻¹ Finset.sum_mul d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = ∑ i, y.val i * x.val i * (normPowerSeries n x)⁻¹ d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = ∑ i, y.val i * x.val i * (normPowerSeries n x)⁻¹] d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x = ∑ i, y.val i * x.val i * (normPowerSeries n x)⁻¹
exact Finset.sum_congr rfl fun i _ => by d:ℕn:ℕx:Space dy:Space di:Fin dx✝:i ∈ Finset.univ⊢ y.val i • deriv i (fun x => normPowerSeries n x) x = y.val i * x.val i * (normPowerSeries n x)⁻¹ simp [deriv_normPowerSeries, mul_assoc] All goals completed! 🐙A.4. Limits of the derivative of the power series
lemma deriv_normPowerSeries_tendsto {d} (x : Space d) (hx : x ≠ 0) (i : Fin d) :
Filter.Tendsto (fun n => ∂[i] (normPowerSeries n) x) Filter.atTop (𝓝 (x i * (‖x‖)⁻¹)) := by d:ℕx:Space dhx:x ≠ 0i:Fin d⊢ Filter.Tendsto (fun n => deriv i (normPowerSeries n) x) Filter.atTop (𝓝 (x.val i * ‖x‖⁻¹))
simp only [deriv_normPowerSeries] d:ℕx:Space dhx:x ≠ 0i:Fin d⊢ Filter.Tendsto (fun n => x.val i * (normPowerSeries n x)⁻¹) Filter.atTop (𝓝 (x.val i * ‖x‖⁻¹))
exact tendsto_const_nhds.mul (normPowerSeries_inv_tendsto x hx) All goals completed! 🐙lemma fderiv_normPowerSeries_tendsto {d} (x y : Space d) (hx : x ≠ 0) :
Filter.Tendsto (fun n => fderiv ℝ (fun (x : Space d) => normPowerSeries n x) x y)
Filter.atTop (𝓝 (⟪y, x⟫_ℝ * (‖x‖)⁻¹)) := by d:ℕx:Space dy:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => (fderiv ℝ (fun x => normPowerSeries n x) x) y) Filter.atTop (𝓝 (⟪y, x⟫_ℝ * ‖x‖⁻¹))
simp only [fderiv_normPowerSeries] d:ℕx:Space dy:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => ⟪y, x⟫_ℝ * (normPowerSeries n x)⁻¹) Filter.atTop (𝓝 (⟪y, x⟫_ℝ * ‖x‖⁻¹))
exact tendsto_const_nhds.mul (normPowerSeries_inv_tendsto x hx) All goals completed! 🐙A.5. The power series is AEStronglyMeasurable
@[fun_prop]
lemma normPowerSeries_aestronglyMeasurable {d} (n : ℕ) :
AEStronglyMeasurable (normPowerSeries n : Space d → ℝ) volume :=
(normPowerSeries_differentiable n).continuous.aestronglyMeasurableA.6. Bounds on the norm power series
@[simp]
lemma normPowerSeries_nonneg {d} (n : ℕ) (x : Space d) :
0 ≤ normPowerSeries n x :=
Real.sqrt_nonneg _@[simp]
lemma normPowerSeries_pos {d} (n : ℕ) (x : Space d) :
0 < normPowerSeries n x :=
Real.sqrt_pos_of_pos (by d:ℕn:ℕx:Space d⊢ 0 < ‖x‖ ^ 2 + 1 / (↑n + 1) positivity All goals completed! 🐙)@[simp]
lemma normPowerSeries_ne_zero {d} (n : ℕ) (x : Space d) :
normPowerSeries n x ≠ 0 :=
(normPowerSeries_pos n x).ne'
lemma normPowerSeries_le_norm_sq_add_one {d} (n : ℕ) (x : Space d) :
normPowerSeries n x ≤ ‖x‖ + 1 := by d:ℕn:ℕx:Space d⊢ normPowerSeries n x ≤ ‖x‖ + 1
rw [normPowerSeries_eq d:ℕn:ℕx:Space d⊢ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x ≤ ‖x‖ + 1 d:ℕn:ℕx:Space d⊢ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x ≤ ‖x‖ + 1] d:ℕn:ℕx:Space d⊢ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x ≤ ‖x‖ + 1
refine (Real.sqrt_le_left (by d:ℕn:ℕx:Space d⊢ 0 ≤ ‖x‖ + 1 positivity All goals completed! 🐙)).mpr ?_
have h : 1 / ((n : ℝ) + 1) ≤ 1 := div_le_one_of_le₀ (by d:ℕn:ℕx:Space d⊢ 1 ≤ ↑n + 1 d:ℕn:ℕx:Space dh:1 / (↑n + 1) ≤ 1⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≤ (‖x‖ + 1) ^ 2 simp All goals completed! 🐙 d:ℕn:ℕx:Space dh:1 / (↑n + 1) ≤ 1⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≤ (‖x‖ + 1) ^ 2) (by d:ℕn:ℕx:Space d⊢ 0 ≤ ↑n + 1 d:ℕn:ℕx:Space dh:1 / (↑n + 1) ≤ 1⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≤ (‖x‖ + 1) ^ 2 positivity All goals completed! 🐙 d:ℕn:ℕx:Space dh:1 / (↑n + 1) ≤ 1⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≤ (‖x‖ + 1) ^ 2) d:ℕn:ℕx:Space dh:1 / (↑n + 1) ≤ 1⊢ ‖x‖ ^ 2 + 1 / (↑n + 1) ≤ (‖x‖ + 1) ^ 2
nlinarith [norm_nonneg x] All goals completed! 🐙@[simp]
lemma norm_lt_normPowerSeries {d} (n : ℕ) (x : Space d) :
‖x‖ < normPowerSeries n x :=
Real.lt_sqrt_of_sq_lt (lt_add_of_pos_right _ (by d:ℕn:ℕx:Space d⊢ 0 < 1 / (↑n + 1) positivity All goals completed! 🐙))lemma norm_le_normPowerSeries {d} (n : ℕ) (x : Space d) :
‖x‖ ≤ normPowerSeries n x :=
(norm_lt_normPowerSeries n x).lelemma normPowerSeries_zpow_le_norm_sq_add_one {d} (n : ℕ) (m : ℤ) (x : Space d)
(hx : x ≠ 0) :
(normPowerSeries n x) ^ m ≤ (‖x‖ + 1) ^ m + ‖x‖ ^ m := by d:ℕn:ℕm:ℤx:Space dhx:x ≠ 0⊢ normPowerSeries n x ^ m ≤ (‖x‖ + 1) ^ m + ‖x‖ ^ m
match m with
| .ofNat m => d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ normPowerSeries n x ^ Int.ofNat m ≤ (‖x‖ + 1) ^ Int.ofNat m + ‖x‖ ^ Int.ofNat m
simpa using le_add_of_le_of_nonneg
(pow_le_pow_left₀ (by d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ 0 ≤ normPowerSeries n x simp All goals completed! 🐙) (normPowerSeries_le_norm_sq_add_one n x) m) (by d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ 0 ≤ ‖x‖ ^ m positivity All goals completed! 🐙)
| .negSucc m => d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ normPowerSeries n x ^ Int.negSucc m ≤ (‖x‖ + 1) ^ Int.negSucc m + ‖x‖ ^ Int.negSucc m
simp only [zpow_negSucc] d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ (normPowerSeries n x ^ (m + 1))⁻¹ ≤ ((‖x‖ + 1) ^ (m + 1))⁻¹ + (‖x‖ ^ (m + 1))⁻¹
exact le_add_of_nonneg_of_le (by d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ 0 ≤ ((‖x‖ + 1) ^ (m + 1))⁻¹ positivity All goals completed! 🐙) (inv_anti₀ (by d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ 0 < ‖x‖ ^ (m + 1) positivity All goals completed! 🐙)
(pow_le_pow_left₀ (by d:ℕn:ℕm✝:ℤx:Space dhx:x ≠ 0m:ℕ⊢ 0 ≤ ‖x‖ simp All goals completed! 🐙) (norm_le_normPowerSeries n x) (m + 1)))lemma normPowerSeries_inv_le {d} (n : ℕ) (x : Space d) (hx : x ≠ 0) :
(normPowerSeries n x)⁻¹ ≤ ‖x‖⁻¹ :=
inv_anti₀ (norm_pos_iff.mpr hx) (norm_le_normPowerSeries n x)
lemma normPowerSeries_log_le_normPowerSeries {d} (n : ℕ) (x : Space d) :
|Real.log (normPowerSeries n x)| ≤ (normPowerSeries n x)⁻¹ + (normPowerSeries n x) := by d:ℕn:ℕx:Space d⊢ |Real.log (normPowerSeries n x)| ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x
rw [abs_le' d:ℕn:ℕx:Space d⊢ Real.log (normPowerSeries n x) ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x ∧
-Real.log (normPowerSeries n x) ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x d:ℕn:ℕx:Space d⊢ Real.log (normPowerSeries n x) ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x ∧
-Real.log (normPowerSeries n x) ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x] d:ℕn:ℕx:Space d⊢ Real.log (normPowerSeries n x) ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x ∧
-Real.log (normPowerSeries n x) ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x
exact ⟨(Real.log_le_rpow_div (x := normPowerSeries n x) (by d:ℕn:ℕx:Space d⊢ 0 ≤ normPowerSeries n x simp All goals completed! 🐙) one_pos).trans (by d:ℕn:ℕx:Space d⊢ normPowerSeries n x ^ 1 / 1 ≤ (normPowerSeries n x)⁻¹ + normPowerSeries n x simp All goals completed! 🐙),
(neg_le.mp (Real.neg_inv_le_log (normPowerSeries_nonneg n x))).trans
(le_add_of_nonneg_right (normPowerSeries_nonneg n x))⟩lemma normPowerSeries_log_le {d} (n : ℕ) (x : Space d) (hx : x ≠ 0) :
|Real.log (normPowerSeries n x)| ≤ ‖x‖⁻¹ + (‖x‖ + 1) :=
(normPowerSeries_log_le_normPowerSeries n x).trans
(add_le_add (normPowerSeries_inv_le n x hx) (normPowerSeries_le_norm_sq_add_one n x))
A.7. The IsDistBounded property of the norm power series
@[fun_prop]
lemma IsDistBounded.normPowerSeries_zpow {d : ℕ} {n : ℕ} (m : ℤ) :
IsDistBounded (d := d) (fun x => (normPowerSeries n x) ^ m) := by d:ℕn:ℕm:ℤ⊢ IsDistBounded fun x => normPowerSeries n x ^ m
match m with
| .ofNat m => d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ Int.ofNat m
simp only [Int.ofNat_eq_natCast, zpow_natCast] d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ m
apply IsDistBounded.mono (f := fun (x : Space d) => (‖x‖ + 1) ^ m) hf d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => (‖x‖ + 1) ^ mhae d:ℕn:ℕm✝:ℤm:ℕ⊢ AEStronglyMeasurable (fun x => normPowerSeries n x ^ m) volumehfg d:ℕn:ℕm✝:ℤm:ℕ⊢ ∀ (x : Space d), ‖normPowerSeries n x ^ m‖ ≤ ‖(‖x‖ + 1) ^ m‖
· hf d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => (‖x‖ + 1) ^ m fun_prop All goals completed! 🐙
· hae d:ℕn:ℕm✝:ℤm:ℕ⊢ AEStronglyMeasurable (fun x => normPowerSeries n x ^ m) volume fun_prop All goals completed! 🐙
intro x hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ ‖normPowerSeries n x ^ m‖ ≤ ‖(‖x‖ + 1) ^ m‖
simp only [norm_pow, Real.norm_eq_abs] hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ |normPowerSeries n x| ^ m ≤ |‖x‖ + 1| ^ m
refine pow_le_pow_left₀ (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ 0 ≤ |normPowerSeries n x| positivity All goals completed! 🐙) ?_ m
rw [abs_of_nonneg (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ 0 ≤ normPowerSeries n x hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ normPowerSeries n x ≤ ‖x‖ + 1 simp All goals completed! 🐙 hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ normPowerSeries n x ≤ ‖x‖ + 1),abs_of_nonneg (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ 0 ≤ ‖x‖ + 1hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ normPowerSeries n x ≤ ‖x‖ + 1 positivity All goals completed! 🐙hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ normPowerSeries n x ≤ ‖x‖ + 1)]hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ normPowerSeries n x ≤ ‖x‖ + 1
exact normPowerSeries_le_norm_sq_add_one n x All goals completed! 🐙
| .negSucc m => d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ Int.negSucc m
simp only [zpow_negSucc] d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => (normPowerSeries n x ^ (m + 1))⁻¹
apply IsDistBounded.mono (f := fun (x : Space d) => ((√(1/(n + 1)) : ℝ) ^ (m + 1))⁻¹) hf d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => (√(1 / (↑n + 1)) ^ (m + 1))⁻¹hae d:ℕn:ℕm✝:ℤm:ℕ⊢ AEStronglyMeasurable (fun x => (normPowerSeries n x ^ (m + 1))⁻¹) volumehfg d:ℕn:ℕm✝:ℤm:ℕ⊢ ∀ (x : Space d), ‖(normPowerSeries n x ^ (m + 1))⁻¹‖ ≤ ‖(√(1 / (↑n + 1)) ^ (m + 1))⁻¹‖
· hf d:ℕn:ℕm✝:ℤm:ℕ⊢ IsDistBounded fun x => (√(1 / (↑n + 1)) ^ (m + 1))⁻¹ fun_prop All goals completed! 🐙
· hae d:ℕn:ℕm✝:ℤm:ℕ⊢ AEStronglyMeasurable (fun x => (normPowerSeries n x ^ (m + 1))⁻¹) volume exact (((normPowerSeries_differentiable n).continuous.pow _).inv₀
fun x => pow_ne_zero _ (normPowerSeries_ne_zero n x)).aestronglyMeasurable All goals completed! 🐙
· hfg d:ℕn:ℕm✝:ℤm:ℕ⊢ ∀ (x : Space d), ‖(normPowerSeries n x ^ (m + 1))⁻¹‖ ≤ ‖(√(1 / (↑n + 1)) ^ (m + 1))⁻¹‖ intro x hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ ‖(normPowerSeries n x ^ (m + 1))⁻¹‖ ≤ ‖(√(1 / (↑n + 1)) ^ (m + 1))⁻¹‖
simp only [norm_inv, norm_pow, Real.norm_eq_abs, one_div] hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ (|normPowerSeries n x| ^ (m + 1))⁻¹ ≤ (|√(↑n + 1)⁻¹| ^ (m + 1))⁻¹
refine inv_anti₀ (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ 0 < |√(↑n + 1)⁻¹| ^ (m + 1) positivity All goals completed! 🐙) (pow_le_pow_left₀ (abs_nonneg _) ?_ _)
rw [abs_of_nonneg (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ 0 ≤ √(↑n + 1)⁻¹ hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x positivity All goals completed! 🐙hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x), abs_of_nonneg (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ 0 ≤ normPowerSeries n xhfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x simp All goals completed! 🐙hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x), normPowerSeries_eq hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) xhfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x]hfg d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ √(↑n + 1)⁻¹ ≤ (fun x => √(‖x‖ ^ 2 + 1 / (↑n + 1))) x
exact Real.sqrt_le_sqrt (by d:ℕn:ℕm✝:ℤm:ℕx:Space d⊢ (↑n + 1)⁻¹ ≤ ‖x‖ ^ 2 + 1 / (↑n + 1) simp All goals completed! 🐙)@[fun_prop]
lemma IsDistBounded.normPowerSeries_single {d : ℕ} {n : ℕ} :
IsDistBounded (d := d) (fun x => (normPowerSeries n x)) := by d:ℕn:ℕ⊢ IsDistBounded fun x => normPowerSeries n x
simpa using IsDistBounded.normPowerSeries_zpow (n := n) (m := 1) All goals completed! 🐙@[fun_prop]
lemma IsDistBounded.normPowerSeries_inv {d : ℕ} {n : ℕ} :
IsDistBounded (d := d) (fun x => (normPowerSeries n x)⁻¹) := by d:ℕn:ℕ⊢ IsDistBounded fun x => (normPowerSeries n x)⁻¹
simpa using normPowerSeries_zpow (n := n) (-1) All goals completed! 🐙@[fun_prop]
lemma IsDistBounded.normPowerSeries_deriv {d : ℕ} (n : ℕ) (i : Fin d) :
IsDistBounded (d := d) (fun x => ∂[i] (normPowerSeries n) x) := by d:ℕn:ℕi:Fin d⊢ IsDistBounded fun x => deriv i (normPowerSeries n) x
simp only [deriv_normPowerSeries] d:ℕn:ℕi:Fin d⊢ IsDistBounded fun x => x.val i * (normPowerSeries n x)⁻¹
fun_prop All goals completed! 🐙@[fun_prop]
lemma IsDistBounded.normPowerSeries_fderiv {d : ℕ} (n : ℕ) (y : Space d) :
IsDistBounded (d := d) (fun x => fderiv ℝ (fun (x : Space d) => normPowerSeries n x) x y) := by d:ℕn:ℕy:Space d⊢ IsDistBounded fun x => (fderiv ℝ (fun x => normPowerSeries n x) x) y
simp only [fderiv_eq_sum_deriv] d:ℕn:ℕy:Space d⊢ IsDistBounded fun x => ∑ i, y.val i • deriv i (fun x => normPowerSeries n x) x
exact IsDistBounded.sum_fun (by d:ℕn:ℕy:Space d⊢ ∀ i ∈ Finset.univ, IsDistBounded fun x => y.val i • deriv i (fun x => normPowerSeries n x) x fun_prop All goals completed! 🐙)@[fun_prop]
lemma IsDistBounded.normPowerSeries_log {d : ℕ} (n : ℕ) :
IsDistBounded (d := d) (fun x => Real.log (normPowerSeries n x)) := by d:ℕn:ℕ⊢ IsDistBounded fun x => Real.log (normPowerSeries n x)
apply IsDistBounded.mono (f := fun x => (normPowerSeries n x)⁻¹ + (normPowerSeries n x)) hf d:ℕn:ℕ⊢ IsDistBounded fun x => (normPowerSeries n x)⁻¹ + normPowerSeries n xhae d:ℕn:ℕ⊢ AEStronglyMeasurable (fun x => Real.log (normPowerSeries n x)) volumehfg d:ℕn:ℕ⊢ ∀ (x : Space d), ‖Real.log (normPowerSeries n x)‖ ≤ ‖(normPowerSeries n x)⁻¹ + normPowerSeries n x‖
· hf d:ℕn:ℕ⊢ IsDistBounded fun x => (normPowerSeries n x)⁻¹ + normPowerSeries n x fun_prop All goals completed! 🐙
· hae d:ℕn:ℕ⊢ AEStronglyMeasurable (fun x => Real.log (normPowerSeries n x)) volume exact ((normPowerSeries_differentiable n).continuous.log
(normPowerSeries_ne_zero n)).aestronglyMeasurable All goals completed! 🐙
· hfg d:ℕn:ℕ⊢ ∀ (x : Space d), ‖Real.log (normPowerSeries n x)‖ ≤ ‖(normPowerSeries n x)⁻¹ + normPowerSeries n x‖ exact fun x => (normPowerSeries_log_le_normPowerSeries n x).trans (le_abs_self _) All goals completed! 🐙A.8. Differentiability of functions
@[fun_prop]
lemma differentiable_normPowerSeries_zpow {d : ℕ} {n : ℕ} (m : ℤ) :
Differentiable ℝ (fun x : Space d => (normPowerSeries n x) ^ m) :=
Differentiable.zpow (by d:ℕn:ℕm:ℤ⊢ Differentiable ℝ (normPowerSeries n) fun_prop All goals completed! 🐙) (.inl (normPowerSeries_ne_zero n))@[fun_prop]
lemma differentiable_normPowerSeries_inv {d : ℕ} {n : ℕ} :
Differentiable ℝ (fun x : Space d => (normPowerSeries n x)⁻¹) :=
Differentiable.inv (by d:ℕn:ℕ⊢ Differentiable ℝ (normPowerSeries n) fun_prop All goals completed! 🐙) (normPowerSeries_ne_zero n)@[fun_prop]
lemma differentiable_log_normPowerSeries {d : ℕ} {n : ℕ} :
Differentiable ℝ (fun x : Space d => Real.log (normPowerSeries n x)) :=
Differentiable.log (by d:ℕn:ℕ⊢ Differentiable ℝ (normPowerSeries n) fun_prop All goals completed! 🐙) (normPowerSeries_ne_zero n)A.9. Derivatives of functions
lemma deriv_normPowerSeries_zpow {d : ℕ} {n : ℕ} (m : ℤ) (x : Space d) (i : Fin d) :
∂[i] (fun x : Space d => (normPowerSeries n x) ^ m) x =
m * x i * (normPowerSeries n x) ^ (m - 2) := by d:ℕn:ℕm:ℤx:Space di:Fin d⊢ deriv i (fun x => normPowerSeries n x ^ m) x = ↑m * x.val i * normPowerSeries n x ^ (m - 2)
rw [deriv_eq_fderiv_basis d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis i) = ↑m * x.val i * normPowerSeries n x ^ (m - 2) d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis i) = ↑m * x.val i * normPowerSeries n x ^ (m - 2)] d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis i) = ↑m * x.val i * normPowerSeries n x ^ (m - 2)
change (fderiv ℝ ((fun x => x ^ m) ∘ normPowerSeries n) x) (basis i) = _ d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ ((fun x => x ^ m) ∘ normPowerSeries n) x) (basis i) = ↑m * x.val i * normPowerSeries n x ^ (m - 2)
rw [show m - 2 = m - 1 - 1 by d:ℕn:ℕm:ℤx:Space di:Fin d⊢ deriv i (fun x => normPowerSeries n x ^ m) x = ↑m * x.val i * normPowerSeries n x ^ (m - 2) d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => x ^ m) (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x ring All goals completed! 🐙 d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => x ^ m) (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x, zpow_sub_one₀ (normPowerSeries_ne_zero n x), d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ ((fun x => x ^ m) ∘ normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹) d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => x ^ m) (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x fderiv_comp d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => x ^ m) (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => x ^ m) (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x] d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (fun x => x ^ m) (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
simp only [ContinuousLinearMap.coe_comp, Function.comp_apply, fderiv_eq_smul_deriv, deriv_zpow',
smul_eq_mul] d:ℕn:ℕm:ℤx:Space di:Fin d⊢ (fderiv ℝ (normPowerSeries n) x) (basis i) * (↑m * normPowerSeries n x ^ (m - 1)) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
rw [fderiv_normPowerSeries, d:ℕn:ℕm:ℤx:Space di:Fin d⊢ ⟪basis i, x⟫_ℝ * (normPowerSeries n x)⁻¹ * (↑m * normPowerSeries n x ^ (m - 1)) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x d:ℕn:ℕm:ℤx:Space di:Fin d⊢ x.val i * (normPowerSeries n x)⁻¹ * (↑m * normPowerSeries n x ^ (m - 1)) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x basis_inner d:ℕn:ℕm:ℤx:Space di:Fin d⊢ x.val i * (normPowerSeries n x)⁻¹ * (↑m * normPowerSeries n x ^ (m - 1)) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x d:ℕn:ℕm:ℤx:Space di:Fin d⊢ x.val i * (normPowerSeries n x)⁻¹ * (↑m * normPowerSeries n x ^ (m - 1)) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x] d:ℕn:ℕm:ℤx:Space di:Fin d⊢ x.val i * (normPowerSeries n x)⁻¹ * (↑m * normPowerSeries n x ^ (m - 1)) =
↑m * x.val i * (normPowerSeries n x ^ (m - 1) * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
ring hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x)hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
· hg d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (fun x => x ^ m) (normPowerSeries n x) exact differentiableAt_zpow.mpr (.inl (normPowerSeries_ne_zero n x)) All goals completed! 🐙
· hf d:ℕn:ℕm:ℤx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x fun_prop All goals completed! 🐙
lemma fderiv_normPowerSeries_zpow {d : ℕ} {n : ℕ} (m : ℤ) (x y : Space d) :
fderiv ℝ (fun x : Space d => (normPowerSeries n x) ^ m) x y =
m * ⟪y, x⟫_ℝ * (normPowerSeries n x) ^ (m - 2) := by d:ℕn:ℕm:ℤx:Space dy:Space d⊢ (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) y = ↑m * ⟪y, x⟫_ℝ * normPowerSeries n x ^ (m - 2)
rw [fderiv_eq_sum_deriv, d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x = ↑m * ⟪y, x⟫_ℝ * normPowerSeries n x ^ (m - 2) d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
∑ i, ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2) inner_eq_sum, d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
(↑m * ∑ i, y.val i * x.val i) * normPowerSeries n x ^ (m - 2) d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
∑ i, ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2) Finset.mul_sum, d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
(∑ i, ↑m * (y.val i * x.val i)) * normPowerSeries n x ^ (m - 2) d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
∑ i, ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2) Finset.sum_mul d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
∑ i, ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2) d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
∑ i, ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2)] d:ℕn:ℕm:ℤx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => normPowerSeries n x ^ m) x =
∑ i, ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2)
exact Finset.sum_congr rfl fun i _ => by d:ℕn:ℕm:ℤx:Space dy:Space di:Fin dx✝:i ∈ Finset.univ⊢ y.val i • deriv i (fun x => normPowerSeries n x ^ m) x = ↑m * (y.val i * x.val i) * normPowerSeries n x ^ (m - 2)
simp [deriv_normPowerSeries_zpow, mul_assoc, mul_comm, mul_left_comm] All goals completed! 🐙
lemma deriv_log_normPowerSeries {d : ℕ} {n : ℕ} (x : Space d) (i : Fin d) :
∂[i] (fun x : Space d => Real.log (normPowerSeries n x)) x =
x i * (normPowerSeries n x) ^ (-2 : ℤ) := by d:ℕn:ℕx:Space di:Fin d⊢ deriv i (fun x => Real.log (normPowerSeries n x)) x = x.val i * normPowerSeries n x ^ (-2)
rw [deriv_eq_fderiv_basis d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis i) = x.val i * normPowerSeries n x ^ (-2) d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis i) = x.val i * normPowerSeries n x ^ (-2)] d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis i) = x.val i * normPowerSeries n x ^ (-2)
change (fderiv ℝ (Real.log ∘ normPowerSeries n) x) (basis i) = _ d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (Real.log ∘ normPowerSeries n) x) (basis i) = x.val i * normPowerSeries n x ^ (-2)
rw [fderiv_comp d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ Real.log (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
x.val i * normPowerSeries n x ^ (-2)hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x)hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ Real.log (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
x.val i * normPowerSeries n x ^ (-2)hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x)hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x] d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ Real.log (normPowerSeries n x) ∘SL fderiv ℝ (normPowerSeries n) x) (basis i) =
x.val i * normPowerSeries n x ^ (-2)hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x)hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
simp only [ContinuousLinearMap.coe_comp, Function.comp_apply, fderiv_eq_smul_deriv,
Real.deriv_log', smul_eq_mul, Int.reduceNeg, zpow_neg] d:ℕn:ℕx:Space di:Fin d⊢ (fderiv ℝ (normPowerSeries n) x) (basis i) * (normPowerSeries n x)⁻¹ = x.val i * (normPowerSeries n x ^ 2)⁻¹hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x)hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
simp [fderiv_normPowerSeries, zpow_ofNat, sq] d:ℕn:ℕx:Space di:Fin d⊢ x.val i * (normPowerSeries n x)⁻¹ * (normPowerSeries n x)⁻¹ =
x.val i * ((normPowerSeries n x)⁻¹ * (normPowerSeries n x)⁻¹)hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x)hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
ring hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x)hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x
· hg d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ Real.log (normPowerSeries n x) exact Real.differentiableAt_log (normPowerSeries_ne_zero n x) All goals completed! 🐙
· hf d:ℕn:ℕx:Space di:Fin d⊢ DifferentiableAt ℝ (normPowerSeries n) x fun_prop All goals completed! 🐙
lemma fderiv_log_normPowerSeries {d : ℕ} {n : ℕ} (x y : Space d) :
fderiv ℝ (fun x : Space d => Real.log (normPowerSeries n x)) x y =
⟪y, x⟫_ℝ * (normPowerSeries n x) ^ (-2 : ℤ) := by d:ℕn:ℕx:Space dy:Space d⊢ (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) y = ⟪y, x⟫_ℝ * normPowerSeries n x ^ (-2)
rw [fderiv_eq_sum_deriv, d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = ⟪y, x⟫_ℝ * normPowerSeries n x ^ (-2) d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = ∑ i, y.val i * x.val i * normPowerSeries n x ^ (-2) inner_eq_sum, d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x =
(∑ i, y.val i * x.val i) * normPowerSeries n x ^ (-2) d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = ∑ i, y.val i * x.val i * normPowerSeries n x ^ (-2) Finset.sum_mul d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = ∑ i, y.val i * x.val i * normPowerSeries n x ^ (-2) d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = ∑ i, y.val i * x.val i * normPowerSeries n x ^ (-2)] d:ℕn:ℕx:Space dy:Space d⊢ ∑ i, y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = ∑ i, y.val i * x.val i * normPowerSeries n x ^ (-2)
exact Finset.sum_congr rfl fun i _ => by d:ℕn:ℕx:Space dy:Space di:Fin dx✝:i ∈ Finset.univ⊢ y.val i • deriv i (fun x => Real.log (normPowerSeries n x)) x = y.val i * x.val i * normPowerSeries n x ^ (-2) simp [deriv_log_normPowerSeries, mul_assoc] All goals completed! 🐙A.10. Gradients of distributions based on powers
lemma gradient_dist_normPowerSeries_zpow {d : ℕ} {n : ℕ} (m : ℤ) :
∇ᵈ (distOfFunction (fun x : Space d => (normPowerSeries n x) ^ m) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕn:ℕm:ℤ⊢ IsDistBounded fun x => normPowerSeries n x ^ m fun_prop All goals completed! 🐙)) =
distOfFunction (fun x : Space d => (m * (normPowerSeries n x) ^ (m - 2)) • basis.repr x)
(by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕn:ℕm:ℤ⊢ IsDistBounded fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x fun_prop All goals completed! 🐙) := by d:ℕn:ℕm:ℤ⊢ ∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯) =
distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯
ext1 η d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)⊢ (∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η =
(distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯) η
refine ext_inner_right ℝ fun y => ?_ d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ =
⟪(distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ
simp [distGrad_inner_eq] d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ (((Distribution.fderivD ℝ) (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η) (basis.repr.symm y) =
⟪(distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ
rw [Distribution.fderivD_apply, d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -(distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) =
⟪(distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ distOfFunction_apply, d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
⟪(distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ distOfFunction_inner d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ] d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ
calc _
_ = - ∫ (x : Space d), fderiv ℝ η x (basis.repr.symm y) * normPowerSeries n x ^ m := by d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m =
-∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m
rfl All goals completed! 🐙
_ = ∫ (x : Space d), η x * fderiv ℝ (normPowerSeries n · ^ m) x (basis.repr.symm y) := by d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m =
∫ (x : Space d), η x * (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y)
rw [integral_mul_fderiv_eq_neg_fderiv_mul_of_integrable d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m =
-∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ mhf'g d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m) volumehfg' d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y)) volumehfg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * normPowerSeries n x ^ m) volumehf d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => normPowerSeries n x ^ m, DifferentiableAt ℝ (⇑η) xhg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => normPowerSeries n x ^ m) x hf'g d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m) volumehfg' d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y)) volumehfg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * normPowerSeries n x ^ m) volumehf d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => normPowerSeries n x ^ m, DifferentiableAt ℝ (⇑η) xhg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => normPowerSeries n x ^ m) x]hf'g d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m) volumehfg' d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y)) volumehfg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * normPowerSeries n x ^ m) volumehf d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => normPowerSeries n x ^ m, DifferentiableAt ℝ (⇑η) xhg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => normPowerSeries n x ^ m) x
· hf'g d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m) volume fun_prop All goals completed! 🐙
· hfg' d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y)) volume refine IsDistBounded.integrable_space_mul ?_ η hfg' d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y)
simp only [fderiv_normPowerSeries_zpow, mul_assoc] hfg' d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => ↑m * (⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (m - 2))
fun_prop All goals completed! 🐙
· hfg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * normPowerSeries n x ^ m) volume fun_prop All goals completed! 🐙
· hf d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => normPowerSeries n x ^ m, DifferentiableAt ℝ (⇑η) x fun_prop All goals completed! 🐙
· hg d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => normPowerSeries n x ^ m) x exact fun _ _ => (differentiable_normPowerSeries_zpow m).differentiableAt All goals completed! 🐙
_ = ∫ (x : Space d), η x *
(m * ⟪(basis.repr.symm y), x⟫_ℝ * (normPowerSeries n x) ^ (m - 2)) := by d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∫ (x : Space d), η x * (fderiv ℝ (fun x => normPowerSeries n x ^ m) x) (basis.repr.symm y) =
∫ (x : Space d), η x * (↑m * ⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (m - 2))
simp only [fderiv_normPowerSeries_zpow] All goals completed! 🐙
congr calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ (fun x => η x * (↑m * ⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (m - 2))) = fun x =>
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ
funext x calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ η x * (↑m * ⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (m - 2)) =
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ
simp [inner_smul_left_eq_smul] calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (m - 2) =
↑m * normPowerSeries n x ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ ∨
η x = 0
left calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (m - 2) = ↑m * normPowerSeries n x ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ
rw [real_inner_comm, calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪x, basis.repr.symm y⟫_ℝ * normPowerSeries n x ^ (m - 2) = ↑m * normPowerSeries n x ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪x, basis.repr.symm y⟫_ℝ * normPowerSeries n x ^ (m - 2) =
↑m * normPowerSeries n x ^ (m - 2) * ⟪x, basis.repr.symm y⟫_ℝ basis_repr_inner_eq calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪x, basis.repr.symm y⟫_ℝ * normPowerSeries n x ^ (m - 2) =
↑m * normPowerSeries n x ^ (m - 2) * ⟪x, basis.repr.symm y⟫_ℝcalc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪x, basis.repr.symm y⟫_ℝ * normPowerSeries n x ^ (m - 2) =
↑m * normPowerSeries n x ^ (m - 2) * ⟪x, basis.repr.symm y⟫_ℝ]calc.step.e_f d:ℕn:ℕm:ℤη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ↑m * ⟪x, basis.repr.symm y⟫_ℝ * normPowerSeries n x ^ (m - 2) =
↑m * normPowerSeries n x ^ (m - 2) * ⟪x, basis.repr.symm y⟫_ℝ
ring All goals completed! 🐙A.10.1. The limits of gradients of distributions based on powers
lemma gradient_dist_normPowerSeries_zpow_tendsTo_distGrad_norm {d : ℕ} [NeZero d] (m : ℤ)
(hm : - (d - 1 : ℕ) ≤ m) (η : 𝓢(Space d, ℝ))
(y : EuclideanSpace ℝ (Fin d)) :
Filter.Tendsto (fun n =>
⟪(∇ᵈ (distOfFunction
(fun x : Space d => (normPowerSeries n x) ^ m) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ m fun_prop All goals completed! 🐙))) η, y⟫_ℝ)
Filter.atTop
(𝓝 (⟪∇ᵈ (distOfFunction (fun x : Space d => ‖x‖ ^ m)
(IsDistBounded.pow m hm)) η, y⟫_ℝ)) := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(∇ᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯)) η, y⟫_ℝ)
simp only [distGrad_inner_eq, Distribution.fderivD_apply, distOfFunction_apply] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto
(fun n =>
-∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
normPowerSeries n x ^ m)
Filter.atTop
(𝓝
(-∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x • ‖x‖ ^ m))
change Filter.Tendsto (fun n => - ∫ (x : Space d),
fderiv ℝ η x (basis.repr.symm y) * normPowerSeries n x ^ m)
Filter.atTop (𝓝 (- ∫ (x : Space d), fderiv ℝ η x (basis.repr.symm y) * ‖x‖ ^ m)) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => -∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m) Filter.atTop
(𝓝 (-∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ‖x‖ ^ m))
apply Filter.Tendsto.neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun x => ∫ (x_1 : Space d), (fderiv ℝ (⇑η) x_1) (basis.repr.symm y) * normPowerSeries x x_1 ^ m)
Filter.atTop (𝓝 (∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ‖x‖ ^ m))
apply MeasureTheory.tendsto_integral_of_dominated_convergence
(bound := fun x => |fderiv ℝ η x (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) F_measurable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volumeh_bound d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖(fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m‖ ≤
|(fderiv ℝ (⇑η) a) (basis.repr.symm y)| * ((‖a‖ + 1) ^ m + ‖a‖ ^ m)h_lim d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m) Filter.atTop
(𝓝 ((fderiv ℝ (⇑η) a) (basis.repr.symm y) * ‖a‖ ^ m))
· F_measurable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m) volume intro n F_measurable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ AEStronglyMeasurable (fun a => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m) volume
exact IsDistBounded.aeStronglyMeasurable_fderiv_schwartzMap_smul (F := ℝ) (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ IsDistBounded fun a => normPowerSeries n a ^ m fun_prop All goals completed! 🐙) η _
· bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume have h1 : Integrable (fun x =>
(fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(∇ᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯)) η, y⟫_ℝ) bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume
apply IsDistBounded.integrable_space_fderiv
((IsDistBounded.norm_add_pos_nat_zpow m 1 one_pos).add (IsDistBounded.pow m hm)) bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volume
refine h1.abs.congr (ae_of_all _ fun x => ?_) bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volumex:Space d⊢ (fun a => |(fderiv ℝ (⇑η) a) (basis.repr.symm y) * ((‖a‖ + 1) ^ m + ‖a‖ ^ m)|) x =
(fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) x
simp only [abs_mul] bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volumex:Space d⊢ |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * |(‖x‖ + 1) ^ m + ‖x‖ ^ m| =
|(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)
congr 1 bound_integrable.e_a d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volumex:Space d⊢ |(‖x‖ + 1) ^ m + ‖x‖ ^ m| = (‖x‖ + 1) ^ m + ‖x‖ ^ m
exact abs_of_nonneg (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)) volumex:Space d⊢ 0 ≤ (‖x‖ + 1) ^ m + ‖x‖ ^ m positivity All goals completed! 🐙)
· h_bound d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖(fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m‖ ≤
|(fderiv ℝ (⇑η) a) (basis.repr.symm y)| * ((‖a‖ + 1) ^ m + ‖a‖ ^ m) intro n h_bound d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ ∀ᵐ (a : Space d),
‖(fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m‖ ≤
|(fderiv ℝ (⇑η) a) (basis.repr.symm y)| * ((‖a‖ + 1) ^ m + ‖a‖ ^ m)
filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕx:Space dhx:x ≠ 0⊢ ‖(fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m‖ ≤
|(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)
simp [abs_of_nonneg (normPowerSeries_nonneg n x)] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕx:Space dhx:x ≠ 0⊢ |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * normPowerSeries n x ^ m ≤
|(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * ((‖x‖ + 1) ^ m + ‖x‖ ^ m)
exact mul_le_mul_of_nonneg_left
(normPowerSeries_zpow_le_norm_sq_add_one n m x hx) (abs_nonneg _) All goals completed! 🐙
· h_lim d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * normPowerSeries n a ^ m) Filter.atTop
(𝓝 ((fderiv ℝ (⇑η) a) (basis.repr.symm y) * ‖a‖ ^ m)) filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * normPowerSeries n x ^ m) Filter.atTop
(𝓝 ((fderiv ℝ (⇑η) x) (basis.repr.symm y) * ‖x‖ ^ m))
exact tendsto_const_nhds.mul
((normPowerSeries_tendsto x hx).zpow₀ m (.inl (norm_ne_zero_iff.mpr hx))) All goals completed! 🐙
lemma gradient_dist_normPowerSeries_zpow_tendsTo {d : ℕ} [NeZero d] (m : ℤ)
(hm : - (d - 1 : ℕ) + 1 ≤ m)
(η : 𝓢(Space d, ℝ)) (y : EuclideanSpace ℝ (Fin d)) :
Filter.Tendsto (fun n =>
⟪(∇ᵈ (distOfFunction (fun x : Space d => (normPowerSeries n x) ^ m)
(by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ m fun_prop All goals completed! 🐙))) η, y⟫_ℝ)
Filter.atTop
(𝓝 (⟪distOfFunction (fun x : Space d => (m * ‖x‖ ^ (m - 2)) • basis.repr x) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x
simp [← smul_smul] 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => ↑m • ‖x‖ ^ (m - 2) • basis.repr x
refine IsDistBounded.const_fun_smul ?_ ↑m 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => ‖x‖ ^ (m - 2) • basis.repr x
apply IsDistBounded.zpow_smul_repr_self 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -↑(d - 1) - 1 ≤ m - 2
omega All goals completed! 🐙) η, y⟫_ℝ)) := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ)
simp only [gradient_dist_normPowerSeries_zpow] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(distOfFunction (fun x => (↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ)
Filter.atTop (𝓝 ⟪(distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ)
simp [distOfFunction_inner] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
have h1 (n : ℕ) (x : Space d) :
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, (y)⟫_ℝ =
η x * (m * (⟪basis.repr x, y⟫_ℝ * (normPowerSeries n x) ^ (m - 2))) := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
rw [real_inner_smul_left d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕx:Space d⊢ η x * (↑m * normPowerSeries n x ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ) =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2))) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕx:Space d⊢ η x * (↑m * normPowerSeries n x ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ) =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2))) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕx:Space d⊢ η x * (↑m * normPowerSeries n x ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ) =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2))) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
ring d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ)) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
simp only [h1] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2))))
Filter.atTop (𝓝 (∫ (x : Space d), η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
apply MeasureTheory.tendsto_integral_of_dominated_convergence
(bound := fun x => |η x| * |m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) F_measurable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volumeh_bound d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))‖ ≤
|η a| * ↑|m| * |⟪basis.repr a, y⟫_ℝ| * ((‖a‖ + 1) ^ (m - 2) + ‖a‖ ^ (m - 2))h_lim d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))) Filter.atTop
(𝓝 (η a * ⟪(↑m * ‖a‖ ^ (m - 2)) • basis.repr a, y⟫_ℝ))
· F_measurable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))) volume intro n F_measurable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕ⊢ AEStronglyMeasurable (fun a => η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))) volume
apply IsDistBounded.aeStronglyMeasurable_schwartzMap_smul (F := ℝ) ?_ η d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕ⊢ IsDistBounded fun x => ↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2))
apply IsDistBounded.const_mul_fun d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕ⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)
simp [basis_repr_inner_eq] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕ⊢ IsDistBounded fun x => ⟪x, basis.repr.symm y⟫_ℝ * normPowerSeries n x ^ (m - 2)
exact IsDistBounded.isDistBounded_mul_inner' (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ (m - 2) fun_prop All goals completed! 🐙) _
· bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume have h1 : Integrable (fun x =>
η x * (m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ) bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
apply IsDistBounded.integrable_space_mul ?_ η d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2)))bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
apply IsDistBounded.const_mul_fun d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
simp [mul_add] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * (‖x‖ + 1) ^ (m - 2) + ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
apply IsDistBounded.add hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * (‖x‖ + 1) ^ (m - 2)hg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * (‖x‖ + 1) ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume simp [basis_repr_inner_eq] hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪x, basis.repr.symm y⟫_ℝ * (‖x‖ + 1) ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
exact IsDistBounded.isDistBounded_mul_inner'
(IsDistBounded.norm_add_pos_nat_zpow (m - 2) 1 one_pos) _ All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· hg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume simp [basis_repr_inner_eq] hg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ⟪x, basis.repr.symm y⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
conv => d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))| IsDistBounded fun x => ⟪x, basis.repr.symm y⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
enter [1, x] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d| ⟪x, basis.repr.symm y⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
rw [real_inner_comm] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d| ⟪basis.repr.symm y, x⟫_ℝ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
apply IsDistBounded.isDistBounded_mul_inner_of_smul_norm hg.hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ‖x‖ * ‖x‖ ^ (m - 2)hg.hae d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ AEStronglyMeasurable (fun x => ‖x‖ ^ (m - 2)) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· hg.hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ‖x‖ * ‖x‖ ^ (m - 2)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume apply IsDistBounded.mono (f := fun x => ‖x‖ ^ (m - 1) + 1) hg.hf.hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ‖x‖ ^ (m - 1) + 1hg.hf.hae d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ AEStronglyMeasurable (fun x => ‖x‖ * ‖x‖ ^ (m - 2)) volumehg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ (x : Space d), ‖‖x‖ * ‖x‖ ^ (m - 2)‖ ≤ ‖‖x‖ ^ (m - 1) + 1‖bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· hg.hf.hf d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume exact (IsDistBounded.pow (m - 1) (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ -↑(d - 1) ≤ m - 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume omega All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume)).add (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ IsDistBounded fun x => 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume fun_prop All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume)
· hg.hf.hae d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ AEStronglyMeasurable (fun x => ‖x‖ * ‖x‖ ^ (m - 2)) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume exact AEMeasurable.aestronglyMeasurable (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ AEMeasurable (fun x => ‖x‖ * ‖x‖ ^ (m - 2)) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume fun_prop All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume)
· hg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ (x : Space d), ‖‖x‖ * ‖x‖ ^ (m - 2)‖ ≤ ‖‖x‖ ^ (m - 1) + 1‖bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume intro x hg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d⊢ ‖‖x‖ * ‖x‖ ^ (m - 2)‖ ≤ ‖‖x‖ ^ (m - 1) + 1‖bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
simp only [norm_mul, Real.norm_eq_abs, abs_norm, norm_zpow] hg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ |‖x‖ ^ (m - 1) + 1|bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
rw [abs_of_nonneg (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d⊢ 0 ≤ ‖x‖ ^ (m - 1) + 1 hg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume positivity All goals completed! 🐙hg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume)]hg.hf.hfg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space d⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
by_cases hx : x = 0 pos d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x = 0⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· pos d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x = 0⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume subst hx pos d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ‖0‖ * ‖0‖ ^ (m - 2) ≤ ‖0‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
simp [zero_zpow_eq] pos d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ 0 ≤ (if m - 1 = 0 then 1 else 0) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
split_ifs pos d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h✝:m - 1 = 0⊢ 0 ≤ 1 + 1neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h✝:¬m - 1 = 0⊢ 0 ≤ 0 + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume <;> pos d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h✝:m - 1 = 0⊢ 0 ≤ 1 + 1neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h✝:¬m - 1 = 0⊢ 0 ≤ 0 + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume grind All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ * ‖x‖ ^ (m - 2) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume rw [mul_comm, neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 2) * ‖x‖ ≤ ‖x‖ ^ (m - 1) + 1 neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 1) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume ← zpow_add_one₀ (norm_ne_zero_iff.mpr hx), neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 2 + 1) ≤ ‖x‖ ^ (m - 1) + 1neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 1) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
show m - 2 + 1 = m - 1 by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ)neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 1) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume ring All goals completed! 🐙neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 1) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume]neg d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:¬x = 0⊢ ‖x‖ ^ (m - 1) ≤ ‖x‖ ^ (m - 1) + 1bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
simp All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
· hg.hae d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ AEStronglyMeasurable (fun x => ‖x‖ ^ (m - 2)) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume exact AEMeasurable.aestronglyMeasurable (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ AEMeasurable (fun x => ‖x‖ ^ (m - 2)) volumebound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume fun_prop All goals completed! 🐙bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume)bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volume⊢ Integrable (fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) volume
refine h1.abs.congr (ae_of_all _ fun x => ?_) bound_integrable d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))h1:Integrable (fun x => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))) volumex:Space d⊢ (fun a => |η a * (↑m * (⟪basis.repr a, y⟫_ℝ * ((‖a‖ + 1) ^ (m - 2) + ‖a‖ ^ (m - 2))))|) x =
(fun x => |η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))) x
simp only [abs_mul, mul_assoc, Int.cast_abs,
abs_of_nonneg (show (0:ℝ) ≤ (‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2) by positivity)] All goals completed! 🐙
· h_bound d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))‖ ≤
|η a| * ↑|m| * |⟪basis.repr a, y⟫_ℝ| * ((‖a‖ + 1) ^ (m - 2) + ‖a‖ ^ (m - 2)) intro n h_bound d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕ⊢ ∀ᵐ (a : Space d),
‖η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))‖ ≤
|η a| * ↑|m| * |⟪basis.repr a, y⟫_ℝ| * ((‖a‖ + 1) ^ (m - 2) + ‖a‖ ^ (m - 2))
filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ ‖η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))‖ ≤
|η x| * ↑|m| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))
simp [mul_assoc] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ |η x| * (|↑m| * (|⟪basis.repr x, y⟫_ℝ| * |normPowerSeries n x| ^ (m - 2))) ≤
|η x| * (|↑m| * (|⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))))
gcongr hbc d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ |normPowerSeries n x| ^ (m - 2) ≤ (‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2)
rw [abs_of_nonneg (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ 0 ≤ normPowerSeries n x hbc d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ normPowerSeries n x ^ (m - 2) ≤ (‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2) simp All goals completed! 🐙hbc d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ normPowerSeries n x ^ (m - 2) ≤ (‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2))]hbc d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))n:ℕx:Space dhx:x ≠ 0⊢ normPowerSeries n x ^ (m - 2) ≤ (‖x‖ + 1) ^ (m - 2) + ‖x‖ ^ (m - 2)
exact normPowerSeries_zpow_le_norm_sq_add_one n (m - 2) x hx All goals completed! 🐙
· h_lim d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => η a * (↑m * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (m - 2)))) Filter.atTop
(𝓝 (η a * ⟪(↑m * ‖a‖ ^ (m - 2)) • basis.repr a, y⟫_ℝ)) filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
have h2 : ⟪((m : ℝ) * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ =
(m : ℝ) * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)) := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => normPowerSeries n x ^ m) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η, y⟫_ℝ) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
rw [real_inner_smul_left d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0⊢ ↑m * ‖x‖ ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0⊢ ↑m * ‖x‖ ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0⊢ ↑m * ‖x‖ ^ (m - 2) * ⟪basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
ring d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ)) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * ⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ))
rw [h2 d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))))) d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)))))] d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)h1:∀ (n : ℕ) (x : Space d),
η x * ⟪(↑m * normPowerSeries n x ^ (m - 2)) • basis.repr x, y⟫_ℝ =
η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))x:Space dhx:x ≠ 0h2:⟪(↑m * ‖x‖ ^ (m - 2)) • basis.repr x, y⟫_ℝ = ↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2))⊢ Filter.Tendsto (fun n => η x * (↑m * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (m - 2)))) Filter.atTop
(𝓝 (η x * (↑m * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (m - 2)))))
exact tendsto_const_nhds.mul (tendsto_const_nhds.mul (tendsto_const_nhds.mul
((normPowerSeries_tendsto x hx).zpow₀ _ (.inl (norm_ne_zero_iff.mpr hx))))) All goals completed! 🐙A.11. Gradients of distributions based on logs
lemma gradient_dist_normPowerSeries_log {d : ℕ} {n : ℕ} :
∇ᵈ (distOfFunction (fun x : Space d => Real.log (normPowerSeries n x)) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕn:ℕ⊢ IsDistBounded fun x => Real.log (normPowerSeries n x) fun_prop All goals completed! 🐙)) =
distOfFunction (fun x : Space d => ((normPowerSeries n x) ^ (- 2 : ℤ)) • basis.repr x)
(by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕn:ℕ⊢ IsDistBounded fun x => normPowerSeries n x ^ (-2) • basis.repr x fun_prop All goals completed! 🐙) := by d:ℕn:ℕ⊢ ∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯) =
distOfFunction (fun x => normPowerSeries n x ^ (-2) • basis.repr x) ⋯
ext1 η d:ℕn:ℕη:𝓢(Space d, ℝ)⊢ (∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η =
(distOfFunction (fun x => normPowerSeries n x ^ (-2) • basis.repr x) ⋯) η
refine ext_inner_right ℝ fun y => ?_ d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ =
⟪(distOfFunction (fun x => normPowerSeries n x ^ (-2) • basis.repr x) ⋯) η, y⟫_ℝ
simp [distGrad_inner_eq] d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ (((Distribution.fderivD ℝ) (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η) (basis.repr.symm y) =
⟪(distOfFunction (fun x => (normPowerSeries n x ^ 2)⁻¹ • basis.repr x) ⋯) η, y⟫_ℝ
rw [Distribution.fderivD_apply, d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -(distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) =
⟪(distOfFunction (fun x => (normPowerSeries n x ^ 2)⁻¹ • basis.repr x) ⋯) η, y⟫_ℝ d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
∫ (x : Space d), η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ distOfFunction_apply, d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
⟪(distOfFunction (fun x => (normPowerSeries n x ^ 2)⁻¹ • basis.repr x) ⋯) η, y⟫_ℝ d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
∫ (x : Space d), η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ distOfFunction_inner d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
∫ (x : Space d), η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
∫ (x : Space d), η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ] d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
∫ (x : Space d), η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ
calc _
_ = - ∫ (x : Space d), fderiv ℝ η x (basis.repr.symm y) * Real.log (normPowerSeries n x) := by d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x) =
-∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)
rfl All goals completed! 🐙
_ = ∫ (x : Space d), η x *
fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x (basis.repr.symm y) := by d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x) =
∫ (x : Space d), η x * (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y)
rw [integral_mul_fderiv_eq_neg_fderiv_mul_of_integrable d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x) =
-∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)hf'g d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)) volumehfg' d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y)) volumehfg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * Real.log (normPowerSeries n x)) volumehf d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => Real.log (normPowerSeries n x), DifferentiableAt ℝ (⇑η) xhg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => Real.log (normPowerSeries n x)) x hf'g d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)) volumehfg' d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y)) volumehfg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * Real.log (normPowerSeries n x)) volumehf d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => Real.log (normPowerSeries n x), DifferentiableAt ℝ (⇑η) xhg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => Real.log (normPowerSeries n x)) x]hf'g d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)) volumehfg' d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y)) volumehfg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * Real.log (normPowerSeries n x)) volumehf d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => Real.log (normPowerSeries n x), DifferentiableAt ℝ (⇑η) xhg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => Real.log (normPowerSeries n x)) x
· hf'g d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)) volume fun_prop All goals completed! 🐙
· hfg' d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y)) volume refine IsDistBounded.integrable_space_mul ?_ η hfg' d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y)
simp only [fderiv_log_normPowerSeries] hfg' d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => ⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (-2)
fun_prop All goals completed! 🐙
· hfg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Integrable (fun x => η x * Real.log (normPowerSeries n x)) volume fun_prop All goals completed! 🐙
· hf d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport fun x => Real.log (normPowerSeries n x), DifferentiableAt ℝ (⇑η) x fun_prop All goals completed! 🐙
· hg d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∀ x ∈ tsupport ⇑η, DifferentiableAt ℝ (fun x => Real.log (normPowerSeries n x)) x exact fun _ _ => Differentiable.differentiableAt (by d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x✝¹:Space dx✝:x✝¹ ∈ tsupport ⇑η⊢ Differentiable ℝ fun x => Real.log (normPowerSeries n x) fun_prop All goals completed! 🐙)
_ = ∫ (x : Space d), η x * (⟪basis.repr.symm y, x⟫_ℝ * (normPowerSeries n x) ^ (- 2 : ℤ)) := by d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ ∫ (x : Space d), η x * (fderiv ℝ (fun x => Real.log (normPowerSeries n x)) x) (basis.repr.symm y) =
∫ (x : Space d), η x * (⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (-2))
simp only [fderiv_log_normPowerSeries] All goals completed! 🐙
congr calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ (fun x => η x * (⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (-2))) = fun x =>
η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ
funext x calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ η x * (⟪basis.repr.symm y, x⟫_ℝ * normPowerSeries n x ^ (-2)) = η x * ⟪(normPowerSeries n x ^ 2)⁻¹ • basis.repr x, y⟫_ℝ
simp [inner_smul_left_eq_smul] calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪basis.repr.symm y, x⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪basis.repr x, y⟫_ℝ ∨ η x = 0
left calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪basis.repr.symm y, x⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪basis.repr x, y⟫_ℝ
rw [real_inner_comm, calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪x, basis.repr.symm y⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪basis.repr x, y⟫_ℝ calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪x, basis.repr.symm y⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪x, basis.repr.symm y⟫_ℝ basis_repr_inner_eq calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪x, basis.repr.symm y⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪x, basis.repr.symm y⟫_ℝcalc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪x, basis.repr.symm y⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪x, basis.repr.symm y⟫_ℝ]calc.step.e_f d:ℕn:ℕη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)x:Space d⊢ ⟪x, basis.repr.symm y⟫_ℝ * (normPowerSeries n x ^ 2)⁻¹ = (normPowerSeries n x ^ 2)⁻¹ * ⟪x, basis.repr.symm y⟫_ℝ
ring All goals completed! 🐙A.11.1. The limits of gradients of distributions based on logs
lemma gradient_dist_normPowerSeries_log_tendsTo_distGrad_norm {d : ℕ} (hd : 2 ≤ d)
(η : 𝓢(Space d, ℝ)) (y : EuclideanSpace ℝ (Fin d)) :
Filter.Tendsto (fun n =>
⟪(∇ᵈ (distOfFunction
(fun x : Space d => Real.log (normPowerSeries n x)) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ IsDistBounded fun x => Real.log (normPowerSeries n x) fun_prop All goals completed! 🐙))) η, y⟫_ℝ)
Filter.atTop
(𝓝 (⟪∇ᵈ (distOfFunction (fun x : Space d => Real.log ‖x‖)
(IsDistBounded.log_norm)) η, y⟫_ℝ)) := by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(∇ᵈ (distOfFunction (fun x => Real.log ‖x‖) ⋯)) η, y⟫_ℝ)
haveI : NeZero d := ⟨by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ d ≠ 0 omega All goals completed! 🐙⟩
simp only [distGrad_inner_eq, Distribution.fderivD_apply, distOfFunction_apply] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ Filter.Tendsto
(fun n =>
-∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x •
Real.log (normPowerSeries n x))
Filter.atTop
(𝓝
(-∫ (x : Space d),
((SchwartzMap.evalCLM ℝ (Space d) ℝ (basis.repr.symm y)) ((fderivCLM ℝ (Space d) ℝ) η)) x • Real.log ‖x‖))
change Filter.Tendsto (fun n => -
∫ (x : Space d), fderiv ℝ η x (basis.repr.symm y) * Real.log (normPowerSeries n x))
Filter.atTop (𝓝 (- ∫ (x : Space d), fderiv ℝ η x (basis.repr.symm y) * Real.log ‖x‖)) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ Filter.Tendsto (fun n => -∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x))
Filter.atTop (𝓝 (-∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log ‖x‖))
apply Filter.Tendsto.neg d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ Filter.Tendsto (fun x => ∫ (x_1 : Space d), (fderiv ℝ (⇑η) x_1) (basis.repr.symm y) * Real.log (normPowerSeries x x_1))
Filter.atTop (𝓝 (∫ (x : Space d), (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log ‖x‖))
apply MeasureTheory.tendsto_integral_of_dominated_convergence
(bound := fun x => |fderiv ℝ η x (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)) volumebound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) volumeh_bound d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖(fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)‖ ≤
|(fderiv ℝ (⇑η) a) (basis.repr.symm y)| * (‖a‖⁻¹ + (‖a‖ + 1))h_lim d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)) Filter.atTop
(𝓝 ((fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log ‖a‖))
· F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)) volume intro n F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕ⊢ AEStronglyMeasurable (fun a => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)) volume
exact IsDistBounded.aeStronglyMeasurable_fderiv_schwartzMap_smul (F := ℝ) (by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕ⊢ IsDistBounded fun a => Real.log (normPowerSeries n a) fun_prop All goals completed! 🐙) η _
· bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) volume have h1 : Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) *
(‖x‖⁻¹ + (‖x‖ + 1))) volume := by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(∇ᵈ (distOfFunction (fun x => Real.log ‖x‖) ⋯)) η, y⟫_ℝ) bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) volume
apply IsDistBounded.integrable_space_fderiv
(IsDistBounded.add IsDistBounded.inv (by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ IsDistBounded fun x => ‖x‖ + 1 bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) volume fun_prop All goals completed! 🐙bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) volume))bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volume⊢ Integrable (fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) volume
refine h1.abs.congr (ae_of_all _ fun x => ?_) bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volumex:Space d⊢ (fun a => |(fderiv ℝ (⇑η) a) (basis.repr.symm y) * (‖a‖⁻¹ + (‖a‖ + 1))|) x =
(fun x => |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))) x
simp only [abs_mul] bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volumex:Space d⊢ |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * |‖x‖⁻¹ + (‖x‖ + 1)| =
|(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))
congr 1 bound_integrable.e_a d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volumex:Space d⊢ |‖x‖⁻¹ + (‖x‖ + 1)| = ‖x‖⁻¹ + (‖x‖ + 1)
exact abs_of_nonneg (by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:Integrable (fun x => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * (‖x‖⁻¹ + (‖x‖ + 1))) volumex:Space d⊢ 0 ≤ ‖x‖⁻¹ + (‖x‖ + 1) positivity All goals completed! 🐙)
· h_bound d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖(fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)‖ ≤
|(fderiv ℝ (⇑η) a) (basis.repr.symm y)| * (‖a‖⁻¹ + (‖a‖ + 1)) intro n h_bound d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕ⊢ ∀ᵐ (a : Space d),
‖(fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)‖ ≤
|(fderiv ℝ (⇑η) a) (basis.repr.symm y)| * (‖a‖⁻¹ + (‖a‖ + 1))
filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕx:Space dhx:x ≠ 0⊢ ‖(fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)‖ ≤
|(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))
simp only [norm_mul, Real.norm_eq_abs] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕx:Space dhx:x ≠ 0⊢ |(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * |Real.log (normPowerSeries n x)| ≤
|(fderiv ℝ (⇑η) x) (basis.repr.symm y)| * (‖x‖⁻¹ + (‖x‖ + 1))
exact mul_le_mul_of_nonneg_left (normPowerSeries_log_le n x hx) (abs_nonneg _) All goals completed! 🐙
· h_lim d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => (fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log (normPowerSeries n a)) Filter.atTop
(𝓝 ((fderiv ℝ (⇑η) a) (basis.repr.symm y) * Real.log ‖a‖)) filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dx:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => (fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log (normPowerSeries n x)) Filter.atTop
(𝓝 ((fderiv ℝ (⇑η) x) (basis.repr.symm y) * Real.log ‖x‖))
exact tendsto_const_nhds.mul
((normPowerSeries_tendsto x hx).log (norm_ne_zero_iff.mpr hx)) All goals completed! 🐙
lemma gradient_dist_normPowerSeries_log_tendsTo {d : ℕ} (hd : 2 ≤ d)
(η : 𝓢(Space d, ℝ)) (y : EuclideanSpace ℝ (Fin d)) :
Filter.Tendsto (fun n =>
⟪(∇ᵈ (distOfFunction (fun x : Space d => Real.log (normPowerSeries n x))
(by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)n:ℕ⊢ IsDistBounded fun x => Real.log (normPowerSeries n x) fun_prop All goals completed! 🐙))) η, y⟫_ℝ)
Filter.atTop
(𝓝 (⟪distOfFunction (fun x : Space d => (‖x‖ ^ (- 2 : ℤ)) • basis.repr x) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ IsDistBounded fun x => ‖x‖ ^ (-2) • basis.repr x
refine (IsDistBounded.zpow_smul_repr_self _ ?_) 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -↑(d - 1) - 1 ≤ -2
omega All goals completed! 🐙) η, y⟫_ℝ)) := by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) η, y⟫_ℝ)
haveI : NeZero d := ⟨by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ d ≠ 0 omega All goals completed! 🐙⟩
simp only [gradient_dist_normPowerSeries_log, distOfFunction_inner] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero d⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
have h1 (n : ℕ) (x : Space d) :
η x * ⟪(normPowerSeries n x ^ (- 2 : ℤ)) • basis.repr x, y⟫_ℝ =
η x * ((⟪basis.repr x, y⟫_ℝ * (normPowerSeries n x) ^ (- 2 : ℤ))) := by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) η, y⟫_ℝ) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
rw [real_inner_smul_left d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕx:Space d⊢ η x * (normPowerSeries n x ^ (-2) * ⟪basis.repr x, y⟫_ℝ) = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2)) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕx:Space d⊢ η x * (normPowerSeries n x ^ (-2) * ⟪basis.repr x, y⟫_ℝ) = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2)) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dn:ℕx:Space d⊢ η x * (normPowerSeries n x ^ (-2) * ⟪basis.repr x, y⟫_ℝ) = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2)) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
ring d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ)) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
simp only [h1] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Filter.Tendsto (fun n => ∫ (x : Space d), η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (∫ (x : Space d), η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
apply MeasureTheory.tendsto_integral_of_dominated_convergence
(bound := fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (- 2 : ℤ) + ‖x‖ ^ (- 2 : ℤ))) F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))) volumebound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volumeh_bound d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))‖ ≤
|η a| * |⟪basis.repr a, y⟫_ℝ| * ((‖a‖ + 1) ^ (-2) + ‖a‖ ^ (-2))h_lim d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))) Filter.atTop
(𝓝 (η a * ⟪‖a‖ ^ (-2) • basis.repr a, y⟫_ℝ))
· F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ ∀ (n : ℕ), AEStronglyMeasurable (fun a => η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))) volume intro n F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕ⊢ AEStronglyMeasurable (fun a => η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))) volume
refine IsDistBounded.aeStronglyMeasurable_schwartzMap_smul (F := ℝ) ?_ η F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕ⊢ IsDistBounded fun a => ⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2)
simp only [basis_repr_inner_eq] F_measurable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕ⊢ IsDistBounded fun a => ⟪a, basis.repr.symm y⟫_ℝ * normPowerSeries n a ^ (-2)
exact IsDistBounded.isDistBounded_mul_inner' (by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕ⊢ IsDistBounded fun a => normPowerSeries n a ^ (-2) fun_prop All goals completed! 🐙) _
· bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume have h1 : Integrable (fun x =>
η x * ((⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (- 2 : ℤ) + ‖x‖ ^ (- 2 : ℤ))))) volume := by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) η, y⟫_ℝ) bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
apply IsDistBounded.integrable_space_mul ?_ η d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
simp [mul_add] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ 2)⁻¹ + ⟪basis.repr x, y⟫_ℝ * (‖x‖ ^ 2)⁻¹bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
apply IsDistBounded.add hf d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ 2)⁻¹hg d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * (‖x‖ ^ 2)⁻¹bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
· hf d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ 2)⁻¹bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume simp only [basis_repr_inner_eq] hf d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪x, basis.repr.symm y⟫_ℝ * ((‖x‖ + 1) ^ 2)⁻¹bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
exact IsDistBounded.isDistBounded_mul_inner'
(IsDistBounded.norm_add_pos_nat_zpow (- 2) 1 one_pos) _ All goals completed! 🐙bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
· hg d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪basis.repr x, y⟫_ℝ * (‖x‖ ^ 2)⁻¹bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume simp only [basis_repr_inner_eq] hg d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ IsDistBounded fun x => ⟪x, basis.repr.symm y⟫_ℝ * (‖x‖ ^ 2)⁻¹bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
convert IsDistBounded.mul_inner_pow_neg_two (basis.repr.symm y) using 1 d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ (fun x => ⟪x, basis.repr.symm y⟫_ℝ * (‖x‖ ^ 2)⁻¹) = fun x => ⟪basis.repr.symm y, x⟫_ℝ * ‖x‖ ^ (-2)bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
funext x d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space d⊢ ⟪x, basis.repr.symm y⟫_ℝ * (‖x‖ ^ 2)⁻¹ = ⟪basis.repr.symm y, x⟫_ℝ * ‖x‖ ^ (-2)bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
simp [real_inner_comm]bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volumebound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volume⊢ Integrable (fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) volume
refine h1.abs.congr (ae_of_all _ fun x => ?_) bound_integrable d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1✝:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))h1:Integrable (fun x => η x * (⟪basis.repr x, y⟫_ℝ * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2)))) volumex:Space d⊢ (fun a => |η a * (⟪basis.repr a, y⟫_ℝ * ((‖a‖ + 1) ^ (-2) + ‖a‖ ^ (-2)))|) x =
(fun x => |η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))) x
simp only [abs_mul, mul_assoc,
abs_of_nonneg (show (0:ℝ) ≤ (‖x‖ + 1) ^ (- 2 : ℤ) + ‖x‖ ^ (- 2 : ℤ) by positivity)] All goals completed! 🐙
· h_bound d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ ∀ (n : ℕ),
∀ᵐ (a : Space d),
‖η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))‖ ≤
|η a| * |⟪basis.repr a, y⟫_ℝ| * ((‖a‖ + 1) ^ (-2) + ‖a‖ ^ (-2)) intro n h_bound d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕ⊢ ∀ᵐ (a : Space d),
‖η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))‖ ≤
|η a| * |⟪basis.repr a, y⟫_ℝ| * ((‖a‖ + 1) ^ (-2) + ‖a‖ ^ (-2))
filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ ‖η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))‖ ≤
|η x| * |⟪basis.repr x, y⟫_ℝ| * ((‖x‖ + 1) ^ (-2) + ‖x‖ ^ (-2))
simp [mul_assoc] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ |η x| * (|⟪basis.repr x, y⟫_ℝ| * (|normPowerSeries n x| ^ 2)⁻¹) ≤
|η x| * (|⟪basis.repr x, y⟫_ℝ| * (((‖x‖ + 1) ^ 2)⁻¹ + (‖x‖ ^ 2)⁻¹))
gcongr hbc d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ (|normPowerSeries n x| ^ 2)⁻¹ ≤ ((‖x‖ + 1) ^ 2)⁻¹ + (‖x‖ ^ 2)⁻¹
rw [abs_of_nonneg (by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ 0 ≤ normPowerSeries n x hbc d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ (normPowerSeries n x ^ 2)⁻¹ ≤ ((‖x‖ + 1) ^ 2)⁻¹ + (‖x‖ ^ 2)⁻¹ simp All goals completed! 🐙hbc d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ (normPowerSeries n x ^ 2)⁻¹ ≤ ((‖x‖ + 1) ^ 2)⁻¹ + (‖x‖ ^ 2)⁻¹)]hbc d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))n:ℕx:Space dhx:x ≠ 0⊢ (normPowerSeries n x ^ 2)⁻¹ ≤ ((‖x‖ + 1) ^ 2)⁻¹ + (‖x‖ ^ 2)⁻¹
exact normPowerSeries_zpow_le_norm_sq_add_one n (- 2 : ℤ) x hx All goals completed! 🐙
· h_lim d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))⊢ ∀ᵐ (a : Space d),
Filter.Tendsto (fun n => η a * (⟪basis.repr a, y⟫_ℝ * normPowerSeries n a ^ (-2))) Filter.atTop
(𝓝 (η a * ⟪‖a‖ ^ (-2) • basis.repr a, y⟫_ℝ)) filter_upwards [Measure.ae_ne volume 0] with x hx d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
have h2 : ⟪(‖x‖ ^ (- 2 : ℤ)) • basis.repr x, y⟫_ℝ =
⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (- 2 : ℤ) := by d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ Filter.Tendsto (fun n => ⟪(∇ᵈ (distOfFunction (fun x => Real.log (normPowerSeries n x)) ⋯)) η, y⟫_ℝ) Filter.atTop
(𝓝 ⟪(distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) η, y⟫_ℝ) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
rw [real_inner_smul_left d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0⊢ ‖x‖ ^ (-2) * ⟪basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0⊢ ‖x‖ ^ (-2) * ⟪basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0⊢ ‖x‖ ^ (-2) * ⟪basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
ring d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ)) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * ⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ))
rw [h2 d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)))) d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2))))] d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)this:NeZero dh1:∀ (n : ℕ) (x : Space d),
η x * ⟪normPowerSeries n x ^ (-2) • basis.repr x, y⟫_ℝ = η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))x:Space dhx:x ≠ 0h2:⟪‖x‖ ^ (-2) • basis.repr x, y⟫_ℝ = ⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2)⊢ Filter.Tendsto (fun n => η x * (⟪basis.repr x, y⟫_ℝ * normPowerSeries n x ^ (-2))) Filter.atTop
(𝓝 (η x * (⟪basis.repr x, y⟫_ℝ * ‖x‖ ^ (-2))))
exact tendsto_const_nhds.mul (tendsto_const_nhds.mul
((normPowerSeries_tendsto x hx).zpow₀ _ (.inl (norm_ne_zero_iff.mpr hx)))) All goals completed! 🐙B. Distributions involving norms
B.1. The gradient of distributions based on powers
lemma distGrad_distOfFunction_norm_zpow {d : ℕ} [NeZero d]
(m : ℤ) (hm : - (d - 1 : ℕ) + 1 ≤ m) :
∇ᵈ (distOfFunction (fun x : Space d => ‖x‖ ^ m)
(IsDistBounded.pow m (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ m⊢ -↑(d - 1) ≤ m omega All goals completed! 🐙)))
= distOfFunction (fun x : Space d => (m * ‖x‖ ^ (m - 2)) • basis.repr x) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ m⊢ IsDistBounded fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x
simp [← smul_smul] 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ m⊢ IsDistBounded fun x => ↑m • ‖x‖ ^ (m - 2) • basis.repr x
refine IsDistBounded.const_fun_smul ?_ ↑m 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ m⊢ IsDistBounded fun x => ‖x‖ ^ (m - 2) • basis.repr x
apply IsDistBounded.zpow_smul_repr_self 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ m⊢ -↑(d - 1) - 1 ≤ m - 2
omega All goals completed! 🐙) := by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ m⊢ ∇ᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯) = distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯
ext1 η d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)⊢ (∇ᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯)) η = (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) η
exact ext_inner_right ℝ fun y => tendsto_nhds_unique
(gradient_dist_normPowerSeries_zpow_tendsTo_distGrad_norm m (by d:ℕinst✝:NeZero dm:ℤhm:-↑(d - 1) + 1 ≤ mη:𝓢(Space d, ℝ)y:EuclideanSpace ℝ (Fin d)⊢ -↑(d - 1) ≤ m omega All goals completed! 🐙) η y)
(gradient_dist_normPowerSeries_zpow_tendsTo m hm η y)B.2. The gradient of distributions based on logs
lemma distGrad_distOfFunction_log_norm {d : ℕ} (hd : 2 ≤ d := by omega) :
∇ᵈ (distOfFunction (fun x : Space d => Real.log ‖x‖)
(IsDistBounded.log_norm))
= distOfFunction (fun x : Space d => (‖x‖ ^ (- 2 : ℤ)) • basis.repr x) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕhd:autoParam (2 ≤ d) distGrad_distOfFunction_log_norm._auto_1⊢ IsDistBounded fun x => ‖x‖ ^ (-2) • basis.repr x
refine (IsDistBounded.zpow_smul_repr_self _ ?_) 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕhd:autoParam (2 ≤ d) distGrad_distOfFunction_log_norm._auto_1⊢ -↑(d - 1) - 1 ≤ -2
omega All goals completed! 🐙) := by d:ℕhd:2 ≤ d⊢ ∇ᵈ (distOfFunction (fun x => Real.log ‖x‖) ⋯) = distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯
ext1 η d:ℕhd:2 ≤ dη:𝓢(Space d, ℝ)⊢ (∇ᵈ (distOfFunction (fun x => Real.log ‖x‖) ⋯)) η = (distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) η
exact ext_inner_right ℝ fun y => tendsto_nhds_unique
(gradient_dist_normPowerSeries_log_tendsTo_distGrad_norm hd η y)
(gradient_dist_normPowerSeries_log_tendsTo hd η y) All goals completed! 🐙B.3. Divergence of radial norm-power distributions
private lemma integrable_real_pow_mul_schwartz
(ψ : 𝓢(ℝ, ℝ)) (k : ℕ) :
Integrable (fun x : ℝ => x ^ k * ψ x) volume := by ψ:𝓢(ℝ, ℝ)k:ℕ⊢ Integrable (fun x => x ^ k * ψ x) volume
refine (ψ.integrable_pow_mul volume k).mono' (by ψ:𝓢(ℝ, ℝ)k:ℕ⊢ AEStronglyMeasurable (fun x => x ^ k * ψ x) volume fun_prop All goals completed! 🐙)
(ae_of_all _ fun x => by ψ:𝓢(ℝ, ℝ)k:ℕx:ℝ⊢ ‖x ^ k * ψ x‖ ≤ ‖x‖ ^ k * ‖ψ x‖ simp [norm_mul, norm_pow] All goals completed! 🐙)
private lemma radial_power_deriv_integral_by_parts
{d : ℕ} (η : 𝓢(Space d, ℝ))
(n : ↑(Metric.sphere (0 : Space d) 1))
(p : ℕ) (hp : 0 < p) :
- ∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ p * (_root_.deriv (fun a => η (a • n.1)) r.1)
∂(.comap Subtype.val volume)
=
(p : ℝ) * ∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ (p - 1) * η (r.1 • n.1)
∂(.comap Subtype.val volume) := by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
let η' : 𝓢(ℝ, ℝ) := SchwartzMap.compCLM (g := fun a => a • n.1) ℝ (by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ Function.HasTemperateGrowth fun a => a • ↑n d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
apply And.intro left d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ ContDiff ℝ ↑⊤ fun a => a • ↑nright d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ ∀ (n_1 : ℕ), ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ n_1 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
· left d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ ContDiff ℝ ↑⊤ fun a => a • ↑n d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume fun_prop All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
· right d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ ∀ (n_1 : ℕ), ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ n_1 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume intro n' right d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ n' (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
match n' with
| 0 => d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ 0 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
use 1, 1 h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn':ℕ⊢ ∀ (x : ℝ), ‖iteratedFDeriv ℝ 0 (fun a => a • ↑n) x‖ ≤ 1 * (1 + ‖x‖) ^ 1 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
simp [norm_smul] All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
| 1 => d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ 1 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
use 0, 1 h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn':ℕ⊢ ∀ (x : ℝ), ‖iteratedFDeriv ℝ 1 (fun a => a • ↑n) x‖ ≤ 1 * (1 + ‖x‖) ^ 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
intro x h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn':ℕx:ℝ⊢ ‖iteratedFDeriv ℝ 1 (fun a => a • ↑n) x‖ ≤ 1 * (1 + ‖x‖) ^ 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
simp [fderiv_smul_const] All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
| n' + 1 + 1 => d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
use 0, 0 h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕ⊢ ∀ (x : ℝ), ‖iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x‖ ≤ 0 * (1 + ‖x‖) ^ 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
intro x h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ ‖iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x‖ ≤ 0 * (1 + ‖x‖) ^ 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
simp only [Real.norm_eq_abs, pow_zero, mul_one, norm_le_zero_iff] h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x = 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
rw [iteratedFDeriv_succ_eq_comp_right h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘
iteratedFDeriv ℝ (n' + 1) fun y => fderiv ℝ (fun a => a • ↑n) y)
x =
0 h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘
iteratedFDeriv ℝ (n' + 1) fun y => fderiv ℝ (fun a => a • ↑n) y)
x =
0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume]h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘
iteratedFDeriv ℝ (n' + 1) fun y => fderiv ℝ (fun a => a • ↑n) y)
x =
0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
conv_lhs =>
enter [2, 3, y] d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝy:ℝ| fderiv ℝ (fun a => a • ↑n) y d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
simp [fderiv_smul_const] d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝy:ℝ| (ContinuousLinearMap.id ℝ ℝ).smulRight ↑n d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
rw [iteratedFDeriv_succ_const h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘ 0) x = 0 h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘ 0) x = 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume]h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pn'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘ 0) x = 0 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
rfl All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume) (by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ ∃ k C, ∀ (x : ℝ), ‖x‖ ≤ C * (1 + ‖x • ↑n‖) ^ k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume use 1, 1 h d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ ∀ (x : ℝ), ‖x‖ ≤ 1 * (1 + ‖x • ↑n‖) ^ 1 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume; simp [norm_smul] All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume) η d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) η⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
have hη'_apply (x : ℝ) : η' x = η (x • n.1) := by
simp [η'] d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
have hmul_iter_apply :
∀ k x, ((Physlib.Distribution.powOneMul ℝ)^[k] η') x = x ^ k * η' x := by
intro k d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕ⊢ ∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
induction k with
| zero => zero d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)⊢ ∀ (x : ℝ), ((⇑(powOneMul ℝ))^[0] η') x = x ^ 0 * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume simp All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
| succ k ih => succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ ∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k + 1] η') x = x ^ (k + 1) * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
intro x succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ((⇑(powOneMul ℝ))^[k + 1] η') x = x ^ (k + 1) * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
rw [Function.iterate_succ_apply', succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ((powOneMul ℝ) ((⇑(powOneMul ℝ))^[k] η')) x = x ^ (k + 1) * η' x succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ k * x * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume Physlib.Distribution.powOneMul_apply, succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * ((⇑(powOneMul ℝ))^[k] η') x = x ^ (k + 1) * η' xsucc d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ k * x * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ih, succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ (k + 1) * η' xsucc d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ k * x * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume pow_succ succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ k * x * η' xsucc d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ k * x * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume]succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ ↑x * (x ^ k * η' x) = x ^ k * x * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
change x * (x ^ k * η' x) = x ^ k * x * η' x succ d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)k:ℕih:∀ (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xx:ℝ⊢ x * (x ^ k * η' x) = x ^ k * x * η' x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
ring d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
have hleft_subtype :
∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ p * _root_.deriv (fun a => η (a • n.1)) r.1
∂(.comap Subtype.val volume)
=
∫ (x : ℝ) in Set.Ioi (0 : ℝ),
x ^ p * _root_.deriv (fun a => η (a • n.1)) x :=
MeasureTheory.integral_subtype_comap measurableSet_Ioi
fun x : ℝ => x ^ p * _root_.deriv (fun a => η (a • n.1)) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
have hright_subtype :
∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ (p - 1) * η (r.1 • n.1)
∂(.comap Subtype.val volume)
=
∫ (x : ℝ) in Set.Ioi (0 : ℝ),
x ^ (p - 1) * η (x • n.1) :=
MeasureTheory.integral_subtype_comap measurableSet_Ioi fun x : ℝ => x ^ (p - 1) * η (x • n.1) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
rw [hleft_subtype, d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) hright_subtype d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)] d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
have hIBP :
∫ (x : ℝ) in Set.Ioi (0 : ℝ),
x ^ p * _root_.deriv (fun a => η (a • n.1)) x
=
(0 : ℝ) - (0 : ℝ) -
∫ (x : ℝ) in Set.Ioi (0 : ℝ),
((p : ℝ) * x ^ (p - 1)) * η (x • n.1) := by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
refine MeasureTheory.integral_Ioi_mul_deriv_eq_deriv_mul
(a := (0 : ℝ))
(u := fun x : ℝ => x ^ p)
(u' := fun x : ℝ => (p : ℝ) * x ^ (p - 1))
(v := fun x : ℝ => η (x • n.1))
(v' := fun x : ℝ => _root_.deriv (fun a => η (a • n.1)) x)
(a' := (0 : ℝ)) (b' := (0 : ℝ)) ?_ ?_ ?_ ?_ ?_ ?_ refine_1 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun x => x ^ p) (↑p * x ^ (p - 1)) xrefine_2 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun x => η (x • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) xrefine_3 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ IntegrableOn ((fun x => x ^ p) * fun x => _root_.deriv (fun a => η (a • ↑n)) x) (Set.Ioi 0) volumerefine_4 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ IntegrableOn ((fun x => ↑p * x ^ (p - 1)) * fun x => η (x • ↑n)) (Set.Ioi 0) volumerefine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0)refine_6 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) Filter.atTop (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
· refine_1 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun x => x ^ p) (↑p * x ^ (p - 1)) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) exact fun x _ => by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0⊢ HasDerivAt (fun x => x ^ p) (↑p * x ^ (p - 1)) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) simpa using hasDerivAt_pow p x All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
· refine_2 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun x => η (x • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) exact fun x _ => DifferentiableAt.hasDerivAt (by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0⊢ DifferentiableAt ℝ (fun x => η (x • ↑n)) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) fun_prop All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n))
· refine_3 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ IntegrableOn ((fun x => x ^ p) * fun x => _root_.deriv (fun a => η (a • ↑n)) x) (Set.Ioi 0) volume d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) refine (integrable_real_pow_mul_schwartz ((SchwartzMap.derivCLM ℝ ℝ) η')
p).integrableOn.congr_fun (fun x _ => ?_) measurableSet_Ioi refine_3 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0⊢ (fun x => x ^ p * ((derivCLM ℝ ℝ) η') x) x = ((fun x => x ^ p) * fun x => _root_.deriv (fun a => η (a • ↑n)) x) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
have hderiv_eq : _root_.deriv η' x = _root_.deriv (fun a => η (a • n.1)) x := by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume refine_3 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0hderiv_eq:_root_.deriv (⇑η') x = _root_.deriv (fun a => η (a • ↑n)) x⊢ (fun x => x ^ p * ((derivCLM ℝ ℝ) η') x) x = ((fun x => x ^ p) * fun x => _root_.deriv (fun a => η (a • ↑n)) x) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) congr 1refine_3 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0hderiv_eq:_root_.deriv (⇑η') x = _root_.deriv (fun a => η (a • ↑n)) x⊢ (fun x => x ^ p * ((derivCLM ℝ ℝ) η') x) x = ((fun x => x ^ p) * fun x => _root_.deriv (fun a => η (a • ↑n)) x) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)refine_3 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0hderiv_eq:_root_.deriv (⇑η') x = _root_.deriv (fun a => η (a • ↑n)) x⊢ (fun x => x ^ p * ((derivCLM ℝ ℝ) η') x) x = ((fun x => x ^ p) * fun x => _root_.deriv (fun a => η (a • ↑n)) x) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
simp [SchwartzMap.derivCLM_apply, hderiv_eq] All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
· refine_4 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ IntegrableOn ((fun x => ↑p * x ^ (p - 1)) * fun x => η (x • ↑n)) (Set.Ioi 0) volume d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) refine ((integrable_real_pow_mul_schwartz η' (p - 1)).const_mul
(p : ℝ)).integrableOn.congr_fun (fun x _ => ?_) measurableSet_Ioi refine_4 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0⊢ (fun x => ↑p * (x ^ (p - 1) * η' x)) x = ((fun x => ↑p * x ^ (p - 1)) * fun x => η (x • ↑n)) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
ring_nf refine_4 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)x:ℝx✝:x ∈ Set.Ioi 0⊢ ↑p * x ^ (p - 1) * η' x = ((fun x => ↑p * x ^ (p - 1)) * fun x => η (x • ↑n)) x d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
simp [hη'_apply, mul_assoc] All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
· refine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) have hcont : ContinuousAt (fun x : ℝ => x ^ p * η (x • n.1)) (0 : ℝ) := by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < p⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume refine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hcont:ContinuousAt (fun x => x ^ p * η (x • ↑n)) 0⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) fun_proprefine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hcont:ContinuousAt (fun x => x ^ p * η (x • ↑n)) 0⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)refine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hcont:ContinuousAt (fun x => x ^ p * η (x • ↑n)) 0⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
have hlim := tendsto_nhdsWithin_of_tendsto_nhds (s := Set.Ioi (0 : ℝ)) hcont.tendsto refine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hcont:ContinuousAt (fun x => x ^ p * η (x • ↑n)) 0hlim:Filter.Tendsto (fun x => x ^ p * η (x • ↑n)) (𝓝[>] 0) (𝓝 (0 ^ p * η (0 • ↑n)))⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
simp only [ne_eq, hp.ne', not_false_eq_true, zero_pow, zero_smul, zero_mul] at hlim refine_5 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hcont:ContinuousAt (fun x => x ^ p * η (x • ↑n)) 0hlim:Filter.Tendsto (fun x => x ^ p * η (x • ↑n)) (𝓝[>] 0) (𝓝 0)⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) (𝓝[>] 0) (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
exact hlim All goals completed! 🐙 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
· refine_6 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) Filter.atTop (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) have hsch : Filter.Tendsto (fun x : ℝ => ((Physlib.Distribution.powOneMul ℝ)^[p] η') x)
Filter.atTop (𝓝 (0 : ℝ)) :=
Filter.Tendsto.mono_left
(((Physlib.Distribution.powOneMul ℝ)^[p] η').toZeroAtInfty.zero_at_infty')
atTop_le_cocompact refine_6 d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hsch:Filter.Tendsto (fun x => ((⇑(powOneMul ℝ))^[p] η') x) Filter.atTop (𝓝 0)⊢ Filter.Tendsto ((fun x => x ^ p) * fun x => η (x • ↑n)) Filter.atTop (𝓝 0) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
exact hsch.congr' (Filter.Eventually.of_forall (hmul_iter_apply p)) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
calc
-∫ (x : ℝ) in Set.Ioi (0 : ℝ),
x ^ p * _root_.deriv (fun a => η (a • n.1)) x
= ∫ (x : ℝ) in Set.Ioi (0 : ℝ),
((p : ℝ) * x ^ (p - 1)) * η (x • n.1) := by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)
rw [hIBP d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -(0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)) = ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n) d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -(0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)) = ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)] d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ -(0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)) = ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)
ring All goals completed! 🐙
_ = (p : ℝ) * ∫ (x : ℝ) in Set.Ioi (0 : ℝ),
x ^ (p - 1) * η (x • n.1) := by d:ℕη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)p:ℕhp:0 < pη':𝓢(ℝ, ℝ) := (compCLM ℝ ⋯ ⋯) ηhη'_apply:∀ (x : ℝ), η' x = η (x • ↑n)hmul_iter_apply:∀ (k : ℕ) (x : ℝ), ((⇑(powOneMul ℝ))^[k] η') x = x ^ k * η' xhleft_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) xhright_subtype:∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume =
∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)hIBP:∫ (x : ℝ) in Set.Ioi 0, x ^ p * _root_.deriv (fun a => η (a • ↑n)) x =
0 - 0 - ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n)⊢ ∫ (x : ℝ) in Set.Ioi 0, ↑p * x ^ (p - 1) * η (x • ↑n) = ↑p * ∫ (x : ℝ) in Set.Ioi 0, x ^ (p - 1) * η (x • ↑n)
simp only [mul_assoc, integral_const_mul] All goals completed! 🐙
private lemma distDiv_norm_zpow_smul_repr_self_apply_eq_radial_deriv
{d p : ℕ} [NeZero d] (q : ℤ) (hq : 0 < q + (d : ℤ))
(hp_int : (p : ℤ) = q + (d : ℤ))
(η : 𝓢(Space d, ℝ)) :
(∇ᵈ ⬝ (distOfFunction (fun x : Space d => ‖x‖ ^ q • basis.repr x)
(IsDistBounded.zpow_smul_repr_self q (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)⊢ -↑(d - 1) - 1 ≤ q omega All goals completed! 🐙)))) η =
- ∫ n, (∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ p * (_root_.deriv (fun a => η (a • n.1)) r.1)
∂(.comap Subtype.val volume))
∂(volume (α := Space d).toSphere) := by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere
let F : Space d → ℝ := fun x =>
inner ℝ (‖x‖ ^ q • basis.repr x) (grad η x) d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere
calc
(∇ᵈ ⬝ (distOfFunction (fun x : Space d => ‖x‖ ^ q • basis.repr x)
(IsDistBounded.zpow_smul_repr_self q (by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -↑(d - 1) - 1 ≤ q omega All goals completed! 🐙)))) η
= - ∫ x, F x := by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = -∫ (x : Space d), F x
rw [distDiv_ofFunction d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -∫ (x : Space d), ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ = -∫ (x : Space d), F x All goals completed! 🐙] All goals completed! 🐙
_ = - ∫ r, F (r.2.1 • r.1.1)
∂(volume (α := Space d).toSphere.prod
(Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))) := by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -∫ (x : Space d), F x =
-∫ (r : ↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)),
F (↑r.2 • ↑r.1) ∂volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))
rw [integral_volume_eq_spherical d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -∫ (x : ↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)),
F (↑x.2 • ↑x.1) ∂volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)) =
-∫ (r : ↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)),
F (↑r.2 • ↑r.1) ∂volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)) All goals completed! 🐙] All goals completed! 🐙
_ = - ∫ n, (∫ r, F (r.1 • n.1)
∂(Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)))
∂(volume (α := Space d).toSphere) := by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -∫ (r : ↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)),
F (↑r.2 • ↑r.1) ∂volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)) =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), F (↑r • ↑n) ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSphere
rw [MeasureTheory.integral_prod d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -∫ (x : ↑(Metric.sphere 0 1)),
∫ (y : ↑(Set.Ioi 0)),
F (↑(x, y).2 • ↑(x, y).1) ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSphere =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), F (↑r • ↑n) ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSpherehf d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ Integrable (fun r => F (↑r.2 • ↑r.1)) (volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))) hf d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ Integrable (fun r => F (↑r.2 • ↑r.1)) (volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)))]hf d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ Integrable (fun r => F (↑r.2 • ↑r.1)) (volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)))
exact integrable_isDistBounded_inner_grad_schwartzMap_spherical
(IsDistBounded.zpow_smul_repr_self q (by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -↑(d - 1) - 1 ≤ q omega All goals completed! 🐙)) η
_ = - ∫ n, (∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ p * (_root_.deriv (fun a => η (a • n.1)) r.1)
∂(.comap Subtype.val volume))
∂(volume (α := Space d).toSphere) := by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ -∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), F (↑r • ↑n) ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSphere =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere
congr e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝ⊢ (fun n => ∫ (r : ↑(Set.Ioi 0)), F (↑r • ↑n) ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)) = fun n =>
∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
funext n e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)⊢ ∫ (r : ↑(Set.Ioi 0)), F (↑r • ↑n) ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) =
∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
simp [F, Measure.volumeIoiPow] e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)⊢ (∫ (r : ↑(Set.Ioi 0)),
⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n,
∇ (⇑η) (↑r • ↑n)⟫_ℝ ∂(Measure.comap Subtype.val volume).withDensity fun r => ENNReal.ofReal (↑r ^ (d - 1))) =
∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
erw [integral_withDensity_eq_integral_smul (by d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal fun_prop All goals completed! 🐙)] e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)⊢ ∫ (x : ↑(Set.Ioi 0)),
(↑x ^ (d - 1)).toNNReal •
⟪‖↑x • ↑n‖ ^ q • ↑x • basis.repr ↑n, ∇ (⇑η) (↑x • ↑n)⟫_ℝ ∂Measure.comap Subtype.val volume =
∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
· e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)⊢ ∫ (x : ↑(Set.Ioi 0)),
(↑x ^ (d - 1)).toNNReal •
⟪‖↑x • ↑n‖ ^ q • ↑x • basis.repr ↑n, ∇ (⇑η) (↑x • ↑n)⟫_ℝ ∂Measure.comap Subtype.val volume =
∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume congr e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)⊢ (fun x => (↑x ^ (d - 1)).toNNReal • ⟪‖↑x • ↑n‖ ^ q • ↑x • basis.repr ↑n, ∇ (⇑η) (↑x • ↑n)⟫_ℝ) = fun r =>
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
funext r e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)⊢ (↑r ^ (d - 1)).toNNReal • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ =
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
have hr : 0 < (r : ℝ) := r.2 e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ (↑r ^ (d - 1)).toNNReal • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ =
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
have hnorm := norm_smul_sphere n (le_of_lt hr) e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ (↑r ^ (d - 1)).toNNReal • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ =
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
rw [NNReal.smul_def e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑(↑r ^ (d - 1)).toNNReal • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ =
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑(↑r ^ (d - 1)).toNNReal • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ =
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r]e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑(↑r ^ (d - 1)).toNNReal • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ =
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
rw [Real.coe_toNNReal _ (pow_nonneg (le_of_lt hr) (d - 1)) e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r]e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
· e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) • ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r simp only [smul_eq_mul] e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪‖↑r • ↑n‖ ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r
rw [hnorm, e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪↑r ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪∇ (⇑η) (↑r • ↑n), ↑r ^ q • ↑r • basis.repr ↑n⟫_ℝ = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ ← grad_smul_inner_space (n : Space d) (⇑η)
(SchwartzMap.differentiable η) (r : ℝ) hr, e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪↑r ^ q • ↑r • basis.repr ↑n, ∇ (⇑η) (↑r • ↑n)⟫_ℝ = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝe_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪∇ (⇑η) (↑r • ↑n), ↑r ^ q • ↑r • basis.repr ↑n⟫_ℝ = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ real_inner_comm e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪∇ (⇑η) (↑r • ↑n), ↑r ^ q • ↑r • basis.repr ↑n⟫_ℝ = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝe_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪∇ (⇑η) (↑r • ↑n), ↑r ^ q • ↑r • basis.repr ↑n⟫_ℝ = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ]e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * ⟪∇ (⇑η) (↑r • ↑n), ↑r ^ q • ↑r • basis.repr ↑n⟫_ℝ = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ
simp only [inner_smul_right] e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * (↑r ^ q * (↑r * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ)) = ↑r ^ p * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ
rw [← radial_jacobian_zpow_mul_self hp_int hr e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * (↑r ^ q * (↑r * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ)) =
↑r ^ (d - 1) * (↑r ^ q * ↑r) * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * (↑r ^ q * (↑r * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ)) =
↑r ^ (d - 1) * (↑r ^ q * ↑r) * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ]e_f.e_f d:ℕp:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dhp_int:↑p = q + ↑dη:𝓢(Space d, ℝ)F:Space d → ℝ := fun x => ⟪‖x‖ ^ q • basis.repr x, ∇ (⇑η) x⟫_ℝn:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑rhnorm:‖↑r • ↑n‖ = ↑r⊢ ↑r ^ (d - 1) * (↑r ^ q * (↑r * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ)) =
↑r ^ (d - 1) * (↑r ^ q * ↑r) * ⟪∇ (⇑η) (↑r • ↑n), basis.repr ↑n⟫_ℝ
ring All goals completed! 🐙
lemma distDiv_norm_zpow_smul_repr_self_eq_smul
{d : ℕ} [NeZero d] (q : ℤ) (hq : 0 < q + (d : ℤ)) :
∇ᵈ ⬝ (distOfFunction (fun x : Space d => ‖x‖ ^ q • basis.repr x)
(IsDistBounded.zpow_smul_repr_self q (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑d⊢ -↑(d - 1) - 1 ≤ q omega All goals completed! 🐙))) =
(((q + d : ℤ) : ℝ) •
distOfFunction (fun x : Space d => ‖x‖ ^ q)
(IsDistBounded.pow q (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑d⊢ -↑(d - 1) ≤ q omega All goals completed! 🐙))) := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑d⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯) = ↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯
ext η d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
let p : ℕ := Int.toNat (q + (d : ℤ)) d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNat⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
have hp_int : (p : ℤ) = q + (d : ℤ) := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑d⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯) = ↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯ d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑d⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η simpa [p] using Int.toNat_of_nonneg (le_of_lt hq) d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑d⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑d⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
have hp_pos : 0 < p := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑d⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯) = ↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯ d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η omega d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
have hcoef : (((q + d : ℤ) : ℝ)) = (p : ℝ) := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑d⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯) = ↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯ d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
exact_mod_cast hp_int.symm d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
calc
(∇ᵈ ⬝ (distOfFunction (fun x : Space d => ‖x‖ ^ q • basis.repr x)
(IsDistBounded.zpow_smul_repr_self q (by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ -↑(d - 1) - 1 ≤ q omega All goals completed! 🐙)))) η
= - ∫ n, (∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ p * (_root_.deriv (fun a => η (a • n.1)) r.1)
∂(.comap Subtype.val volume))
∂(volume (α := Space d).toSphere) := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ q • basis.repr x) ⋯)) η =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere
exact distDiv_norm_zpow_smul_repr_self_apply_eq_radial_deriv q hq hp_int η All goals completed! 🐙
_ = ∫ n, (p : ℝ) * ∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ (p - 1) * η (r.1 • n.1)
∂(.comap Subtype.val volume)
∂(volume (α := Space d).toSphere) := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ -∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere =
∫ (n : ↑(Metric.sphere 0 1)),
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere
rw [← integral_neg d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ∫ (a : ↑(Metric.sphere 0 1)),
-∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a_1 => η (a_1 • ↑a)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere =
∫ (n : ↑(Metric.sphere 0 1)),
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ∫ (a : ↑(Metric.sphere 0 1)),
-∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a_1 => η (a_1 • ↑a)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere =
∫ (n : ↑(Metric.sphere 0 1)),
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere] d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ∫ (a : ↑(Metric.sphere 0 1)),
-∫ (r : ↑(Set.Ioi 0)),
↑r ^ p * _root_.deriv (fun a_1 => η (a_1 • ↑a)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere =
∫ (n : ↑(Metric.sphere 0 1)),
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere
congr e_f d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ (fun a => -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a_1 => η (a_1 • ↑a)) ↑r ∂Measure.comap Subtype.val volume) =
fun n => ↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
funext n e_f d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑pn:↑(Metric.sphere 0 1)⊢ -∫ (r : ↑(Set.Ioi 0)), ↑r ^ p * _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume =
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume
exact radial_power_deriv_integral_by_parts η n p hp_pos All goals completed! 🐙
_ = (p : ℝ) * ∫ n : ↑(Metric.sphere (0 : Space d) 1),
∫ (r : Set.Ioi (0 : ℝ)),
r.1 ^ (p - 1) * η (r.1 • n.1)
∂(.comap Subtype.val volume)
∂(volume (α := Space d).toSphere) := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ∫ (n : ↑(Metric.sphere 0 1)),
↑p * ∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere =
↑p *
∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere
rw [integral_const_mul d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ↑p *
∫ (a : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑a) ∂Measure.comap Subtype.val volume ∂volume.toSphere =
↑p *
∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere All goals completed! 🐙] All goals completed! 🐙
_ = (p : ℝ) * ∫ x : Space d, η x * ‖x‖ ^ q := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ↑p *
∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), ↑r ^ (p - 1) * η (↑r • ↑n) ∂Measure.comap Subtype.val volume ∂volume.toSphere =
↑p * ∫ (x : Space d), η x * ‖x‖ ^ q
rw [← radial_norm_power_spherical_integral_eq_space_integral hp_int hp_pos η d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ↑p * ∫ (x : Space d), η x * ‖x‖ ^ q = ↑p * ∫ (x : Space d), η x * ‖x‖ ^ q All goals completed! 🐙] All goals completed! 🐙
_ = (((q + (d : ℤ) : ℤ) : ℝ) •
distOfFunction (fun x : Space d => ‖x‖ ^ q)
(IsDistBounded.pow q (by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ -↑(d - 1) ≤ q omega All goals completed! 🐙))) η := by d:ℕinst✝:NeZero dq:ℤhq:0 < q + ↑dη:𝓢(Space d, ℝ)p:ℕ := (q + ↑d).toNathp_int:↑p = q + ↑dhp_pos:0 < phcoef:↑(q + ↑d) = ↑p⊢ ↑p * ∫ (x : Space d), η x * ‖x‖ ^ q = (↑(q + ↑d) • distOfFunction (fun x => ‖x‖ ^ q) ⋯) η
simp [distOfFunction_apply, hcoef] All goals completed! 🐙B.4. The Laplacian of distributions based on powers
lemma distLaplacian_distOfFunction_norm_zpow {d : ℕ} [NeZero d] (m : ℤ)
(hdiv : 0 < m - 2 + (d : ℤ)) :
Δᵈ (distOfFunction (fun x : Space d => ‖x‖ ^ m)
(IsDistBounded.pow m (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ -↑(d - 1) ≤ m omega All goals completed! 🐙))) =
(((m : ℝ) * (((m - 2 + d : ℤ) : ℝ))) •
distOfFunction (fun x : Space d => ‖x‖ ^ (m - 2))
(IsDistBounded.pow (m - 2) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ -↑(d - 1) ≤ m - 2 omega All goals completed! 🐙))) := by d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯) = (↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
rw [distLaplacian, d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => ‖x‖ ^ m) ⋯) = (↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ LinearMap.comp_apply, d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ distDiv (∇ᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯)) = (↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ distGrad_distOfFunction_norm_zpow m (by d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ -↑(d - 1) + 1 ≤ m d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ omega All goals completed! 🐙 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯)] d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
have hdist :
distOfFunction (fun x : Space d => (m * ‖x‖ ^ (m - 2)) • basis.repr x)
(by d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ IsDistBounded fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
simp [← smul_smul] d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ IsDistBounded fun x => ↑m • ‖x‖ ^ (m - 2) • basis.repr x d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
refine IsDistBounded.const_fun_smul ?_ ↑m d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ IsDistBounded fun x => ‖x‖ ^ (m - 2) • basis.repr x d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
apply IsDistBounded.zpow_smul_repr_self d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ -↑(d - 1) - 1 ≤ m - 2 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
omega All goals completed! 🐙 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯) =
(m : ℝ) • distOfFunction
(fun x : Space d => ‖x‖ ^ (m - 2) • basis.repr x)
(IsDistBounded.zpow_smul_repr_self (m - 2) (by d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ -↑(d - 1) - 1 ≤ m - 2 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ omega All goals completed! 🐙 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯)) := by d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ m) ⋯) = (↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
convert distOfFunction_smul_fun
(fun x : Space d => ‖x‖ ^ (m - 2) • basis.repr x)
(IsDistBounded.zpow_smul_repr_self (m - 2) (by d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑d⊢ -↑(d - 1) - 1 ≤ m - 2 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ omega All goals completed! 🐙 d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯)) (m : ℝ) using 1
ext x d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dx:𝓢(Space d, ℝ)i✝:Fin d⊢ ((distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) x).ofLp i✝ =
((distOfFunction (fun x => ↑m • ‖x‖ ^ (m - 2) • basis.repr x) ⋯) x).ofLp i✝ d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
simp [smul_smul] d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯
rw [hdist, d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ distDiv (↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ All goals completed! 🐙 map_smul, d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ ↑m • distDiv (distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯) =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ All goals completed! 🐙 distDiv_norm_zpow_smul_repr_self_eq_smul (m - 2) hdiv, d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ ↑m • ↑(m - 2 + ↑d) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ All goals completed! 🐙 smul_smul d:ℕinst✝:NeZero dm:ℤhdiv:0 < m - 2 + ↑dhdist:distOfFunction (fun x => (↑m * ‖x‖ ^ (m - 2)) • basis.repr x) ⋯ =
↑m • distOfFunction (fun x => ‖x‖ ^ (m - 2) • basis.repr x) ⋯⊢ (↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ =
(↑m * ↑(m - 2 + ↑d)) • distOfFunction (fun x => ‖x‖ ^ (m - 2)) ⋯ All goals completed! 🐙] All goals completed! 🐙B.5. Divergence equal dirac delta
We show that the divergence of x ↦ ‖x‖ ^ (- d) • x is equal to a multiple of the Dirac delta
at 0.
The distributional divergence of the radial field x ↦ ‖x‖ ^ (-d) • x (i.e. x / ‖x‖ ^ d)
equals d * volume (Metric.ball 0 1) — the surface area of the unit sphere S^{d-1} — times the
Dirac delta at the origin. This is the Gauss-law identity underlying the fundamental solution of
the Laplacian: away from 0 the field is divergence-free, and all of its flux concentrates at the
origin.
lemma distDiv_inv_pow_eq_dim {d : ℕ} [NeZero d] :
∇ᵈ ⬝ (distOfFunction (fun x : Space d => ‖x‖ ^ (- d : ℤ) • basis.repr x)
(IsDistBounded.zpow_smul_repr_self (- d : ℤ) (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero d⊢ -↑(d - 1) - 1 ≤ -↑d omega All goals completed! 🐙))) =
(d * (volume (α := Space d)).real (Metric.ball 0 1)) • diracDelta ℝ 0 := by d:ℕinst✝:NeZero d⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯) = (↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
ext η d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯)) η =
((↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0) η
calc _
_ = - ∫ x, ⟪‖x‖⁻¹ ^ d • basis.repr x, Space.grad η x⟫_ℝ := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ (distDiv (distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯)) η =
-∫ (x : Space d), ⟪‖x‖⁻¹ ^ d • basis.repr x, ∇ (⇑η) x⟫_ℝ
simp only [zpow_neg, zpow_natCast, distDiv_ofFunction, inv_pow] All goals completed! 🐙
_ = - ∫ x, ‖x‖⁻¹ ^ (d - 1) * ⟪‖x‖⁻¹ • basis.repr x, Space.grad η x⟫_ℝ := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : Space d), ⟪‖x‖⁻¹ ^ d • basis.repr x, ∇ (⇑η) x⟫_ℝ =
-∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ
simp only [← pow_sub_one_mul (NeZero.ne d), inv_pow, inner_smul_left, conj_trivial,
map_inv₀, neg_inj] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ ∫ (x : Space d), (‖x‖ ^ (d - 1))⁻¹ * ‖x‖⁻¹ * ⟪basis.repr x, ∇ (⇑η) x⟫_ℝ =
∫ (x : Space d), (‖x‖ ^ (d - 1))⁻¹ * (‖x‖⁻¹ * ⟪basis.repr x, ∇ (⇑η) x⟫_ℝ)
ring_nf All goals completed! 🐙
_ = - ∫ x, ‖x‖⁻¹ ^ (d - 1) * (_root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖) := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
-∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖
simp only [real_inner_comm,
← grad_inner_space_unit_vector _ _ (SchwartzMap.differentiable η)] All goals completed! 🐙
_ = - ∫ r, ‖r.2.1‖⁻¹ ^ (d - 1) * (_root_.deriv (fun a => η (a • r.1)) ‖r.2.1‖)
∂(volume (α := Space d).toSphere.prod
(Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))) := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
-∫ (r : ↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)),
‖↑r.2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑r.1))
‖↑r.2‖ ∂volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))
rw [← MeasureTheory.MeasurePreserving.integral_comp (f := homeomorphUnitSphereProd _)
(MeasureTheory.Measure.measurePreserving_homeomorphUnitSphereProd
(volume (α := Space d)))
(Homeomorph.measurableEmbedding (homeomorphUnitSphereProd (Space d))) d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
-∫ (x : ↑{0}ᶜ),
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑((homeomorphUnitSphereProd (Space d)) x).1))
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖ ∂Measure.comap Subtype.val volume d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
-∫ (x : ↑{0}ᶜ),
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑((homeomorphUnitSphereProd (Space d)) x).1))
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖ ∂Measure.comap Subtype.val volume] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
-∫ (x : ↑{0}ᶜ),
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑((homeomorphUnitSphereProd (Space d)) x).1))
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖ ∂Measure.comap Subtype.val volume
congr 1 d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ ∫ (x : Space d), ‖x‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : ↑{0}ᶜ),
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑((homeomorphUnitSphereProd (Space d)) x).1))
‖↑((homeomorphUnitSphereProd (Space d)) x).2‖ ∂Measure.comap Subtype.val volume
simp only [inv_pow, homeomorphUnitSphereProd_apply_snd_coe, norm_norm,
homeomorphUnitSphereProd_apply_fst_coe] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ ∫ (x : Space d), (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : ↑{0}ᶜ), (‖↑x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖↑x‖⁻¹ • ↑x)) ‖↑x‖ ∂Measure.comap Subtype.val volume
let f (x : Space d) : ℝ :=
(‖↑x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖↑x‖⁻¹ • ↑x)) ‖↑x‖ d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d), (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : ↑{0}ᶜ), (‖↑x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖↑x‖⁻¹ • ↑x)) ‖↑x‖ ∂Measure.comap Subtype.val volume
conv_rhs =>
enter [2, x] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖x:↑{0}ᶜ| (‖↑x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖↑x‖⁻¹ • ↑x)) ‖↑x‖
change f x.1 d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖x:↑{0}ᶜ| f ↑x
rw [MeasureTheory.integral_subtype_comap (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ MeasurableSet {0}ᶜ d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d) in Set.univ, (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : Space d) in {0}ᶜ, f x simp All goals completed! 🐙 d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d) in Set.univ, (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : Space d) in {0}ᶜ, f x), ← setIntegral_univ d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d) in Set.univ, (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : Space d) in {0}ᶜ, f x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d) in Set.univ, (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : Space d) in {0}ᶜ, f x] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d) in Set.univ, (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
∫ (x : Space d) in {0}ᶜ, f x
change ∫ x in Set.univ, f x = ∫ (x : Space d) in _, f x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ ∫ (x : Space d) in Set.univ, f x = ∫ (x : Space d) in {0}ᶜ, f x
exact setIntegral_congr_set (MeasureTheory.ae_eq_univ.mpr (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)f:Space d → ℝ := fun x => (‖x‖ ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖⊢ volume {0}ᶜᶜ = 0 simp All goals completed! 🐙)).symm
_ = - ∫ n, (∫ r, ‖r.1‖⁻¹ ^ (d - 1) *
(_root_.deriv (fun a => η (a • n)) ‖r.1‖)
∂((Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))))
∂(volume (α := Space d).toSphere) := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (r : ↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)),
‖↑r.2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑r.1))
‖↑r.2‖ ∂volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)) =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
‖↑r‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑n))
‖↑r‖ ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSphere
rw [MeasureTheory.integral_prod d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (x : ↑(Metric.sphere 0 1)),
∫ (y : ↑(Set.Ioi 0)),
‖↑(x, y).2‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑(x, y).1))
‖↑(x, y).2‖ ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSphere =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
‖↑r‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑n))
‖↑r‖ ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSpherehf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ Integrable (fun r => ‖↑r.2‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ↑r.1)) ‖↑r.2‖)
(volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1))) hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ Integrable (fun r => ‖↑r.2‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ↑r.1)) ‖↑r.2‖)
(volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)))]hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ Integrable (fun r => ‖↑r.2‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ↑r.1)) ‖↑r.2‖)
(volume.toSphere.prod (Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)))
/- Integrable condition. -/
convert integrable_isDistBounded_inner_grad_schwartzMap_spherical
(IsDistBounded.inv_pow_smul_repr_self (d) (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -↑(d - 1) - 1 ≤ -↑d omega All goals completed! 🐙)) η
rename_i r d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)⊢ ‖↑r.2‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ↑r.1)) ‖↑r.2‖ =
((fun x => ⟪‖↑x‖⁻¹ ^ d • basis.repr ↑x, ∇ ⇑η ↑x⟫_ℝ) ∘ ⇑(homeomorphUnitSphereProd (Space d)).symm) r
simp only [Real.norm_eq_abs, inv_pow, Function.comp_apply,
homeomorphUnitSphereProd_symm_apply_coe, map_smul] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)⊢ (|↑r.2| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) |↑r.2| =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ
let x : Space d := r.2.1 • r.1.1 d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1⊢ (|↑r.2| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) |↑r.2| =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ
have hr : (0 : ℝ) < r.2.1 := r.2.2 d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (|↑r.2| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) |↑r.2| =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ
rw [abs_of_nonneg (le_of_lt hr) d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ
trans (r.2.1 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖↑x‖⁻¹ • ↑x)) ‖x‖ d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 =
(↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ
· d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 =
(↑r.2 ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ‖x‖⁻¹ • x)) ‖x‖ simp [x, norm_smul] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 = _root_.deriv (fun a => η (a • |↑r.2|⁻¹ • ↑r.2 • ↑r.1)) |↑r.2| ∨
↑r.2 = 0 ∧ ¬d - 1 = 0
left d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ _root_.deriv (fun a => η (a • ↑r.1)) ↑r.2 = _root_.deriv (fun a => η (a • |↑r.2|⁻¹ • ↑r.2 • ↑r.1)) |↑r.2|
congr e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (fun a => η (a • ↑r.1)) = fun a => η (a • |↑r.2|⁻¹ • ↑r.2 • ↑r.1)e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
funext a e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ η (a • ↑r.1) = η (a • |↑r.2|⁻¹ • ↑r.2 • ↑r.1)e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
congr e_f.e_6.e_a d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ ↑r.1 = |↑r.2|⁻¹ • ↑r.2 • ↑r.1e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
simp [smul_smul] e_f.e_6.e_a d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ ↑r.1 = (|↑r.2|⁻¹ * ↑r.2) • ↑r.1e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
rw [abs_of_nonneg (le_of_lt hr) e_f.e_6.e_a d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ ↑r.1 = ((↑r.2)⁻¹ * ↑r.2) • ↑r.1e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2| e_f.e_6.e_a d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ ↑r.1 = ((↑r.2)⁻¹ * ↑r.2) • ↑r.1e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|]e_f.e_6.e_a d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ ↑r.1 = ((↑r.2)⁻¹ * ↑r.2) • ↑r.1e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
field_simp e_f.e_6.e_a d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2a:ℝ⊢ ↑r.1 = 1 • ↑r.1e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
simp only [one_smul] e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = |↑r.2|
rw [abs_of_nonneg (le_of_lt hr) e_x d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ ↑r.2 = ↑r.2 All goals completed! 🐙] All goals completed! 🐙
rw [← grad_inner_space_unit_vector, d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪∇ (⇑η) x, ‖x‖⁻¹ • basis.repr x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ (d - 1) * ‖↑r.2 • ↑r.1‖)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η real_inner_comm, d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ d)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ (d - 1) * ‖↑r.2 • ↑r.1‖)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η ← pow_sub_one_mul (NeZero.ne d) d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ (d - 1) * ‖↑r.2 • ↑r.1‖)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ (d - 1) * ‖↑r.2 • ↑r.1‖)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ⟪‖x‖⁻¹ • basis.repr x, ∇ (⇑η) x⟫_ℝ =
⟪(‖↑r.2 • ↑r.1‖ ^ (d - 1) * ‖↑r.2 • ↑r.1‖)⁻¹ • ↑r.2 • basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝhd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η
simp only [norm_smul, Real.norm_eq_abs, abs_of_nonneg (le_of_lt hr),
norm_eq_of_mem_sphere, mul_one, map_smul, inner_smul_left, map_inv₀, conj_trivial,
mul_inv_rev, x] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ (↑r.2 ^ (d - 1))⁻¹ * ((↑r.2)⁻¹ * (↑r.2 * ⟪basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ)) =
(↑r.2)⁻¹ * (↑r.2 ^ (d - 1))⁻¹ * (↑r.2 * ⟪basis.repr ↑r.1, ∇ (⇑η) (↑r.2 • ↑r.1)⟫_ℝ)hd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η
field_simp hd d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)r:↑(Metric.sphere 0 1) × ↑(Set.Ioi 0)x:Space d := ↑r.2 • ↑r.1hr:0 < ↑r.2⊢ Differentiable ℝ ⇑η
exact SchwartzMap.differentiable η All goals completed! 🐙
_ = - ∫ n, (∫ (r : Set.Ioi (0 : ℝ)),
(_root_.deriv (fun a => η (a • n)) r.1) ∂(.comap Subtype.val volume))
∂(volume (α := Space d).toSphere) := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)),
‖↑r‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑n))
‖↑r‖ ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) ∂volume.toSphere =
-∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere
congr e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ (fun n =>
∫ (r : ↑(Set.Ioi 0)),
‖↑r‖⁻¹ ^ (d - 1) *
_root_.deriv (fun a => η (a • ↑n)) ‖↑r‖ ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1)) =
fun n => ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
funext n e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ ∫ (r : ↑(Set.Ioi 0)),
‖↑r‖⁻¹ ^ (d - 1) * _root_.deriv (fun a => η (a • ↑n)) ‖↑r‖ ∂Measure.volumeIoiPow (Module.finrank ℝ (Space d) - 1) =
∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
simp [Measure.volumeIoiPow] e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ (∫ (r : ↑(Set.Ioi 0)),
(|↑r| ^ (d - 1))⁻¹ *
_root_.deriv (fun a => η (a • ↑n))
|↑r| ∂(Measure.comap Subtype.val volume).withDensity fun r => ENNReal.ofReal (↑r ^ (d - 1))) =
∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume
erw [integral_withDensity_eq_integral_smul e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ ∫ (x : ↑(Set.Ioi 0)),
(↑x ^ (d - 1)).toNNReal •
((|↑x| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) |↑x|) ∂Measure.comap Subtype.val volume =
∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volumee_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal] e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ ∫ (x : ↑(Set.Ioi 0)),
(↑x ^ (d - 1)).toNNReal •
((|↑x| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) |↑x|) ∂Measure.comap Subtype.val volume =
∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volumee_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal
congr e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ (fun x => (↑x ^ (d - 1)).toNNReal • ((|↑x| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) |↑x|)) = fun r =>
_root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal
funext r e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)⊢ (↑r ^ (d - 1)).toNNReal • ((|↑r| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) |↑r|) =
_root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal
have hr : (0 : ℝ) < r.1 := r.2 e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ (↑r ^ (d - 1)).toNNReal • ((|↑r| ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) |↑r|) =
_root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal
rw [abs_of_nonneg hr.le, e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ (↑r ^ (d - 1)).toNNReal • ((↑r ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) ↑r) =
_root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal e_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal NNReal.smul_def, e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ ↑(↑r ^ (d - 1)).toNNReal • ((↑r ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) ↑r) =
_root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReale_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal Real.coe_toNNReal _ (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ 0 ≤ ↑r ^ (d - 1)e_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal positivity All goals completed! 🐙e_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal),
smul_eq_mul, e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ ↑r ^ (d - 1) * ((↑r ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) ↑r) = _root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReale_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal ← mul_assoc, e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ ↑r ^ (d - 1) * (↑r ^ (d - 1))⁻¹ * _root_.deriv (fun a => η (a • ↑n)) ↑r = _root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReale_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal mul_inv_cancel₀ (pow_ne_zero (d - 1) hr.ne'), e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ 1 * _root_.deriv (fun a => η (a • ↑n)) ↑r = _root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReale_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal one_mul e_f.e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)r:↑(Set.Ioi 0)hr:0 < ↑r⊢ _root_.deriv (fun a => η (a • ↑n)) ↑r = _root_.deriv (fun a => η (a • ↑n)) ↑re_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReale_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal]e_f.f_meas d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ Measurable fun r => (↑r ^ (d - 1)).toNNReal
fun_prop All goals completed! 🐙
_ = - ∫ n, (-η 0) ∂(volume (α := Space d).toSphere) := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (n : ↑(Metric.sphere 0 1)),
∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume ∂volume.toSphere =
-∫ (n : ↑(Metric.sphere 0 1)), -η 0 ∂volume.toSphere
congr e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ (fun n => ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume) = fun n => -η 0
funext n e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
let η' (n : ↑(Metric.sphere 0 1)) : 𝓢(ℝ, ℝ) := compCLM (g := fun a => a • n.1) ℝ (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ Function.HasTemperateGrowth fun a => a • ↑n e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
apply And.intro left d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ ContDiff ℝ ↑⊤ fun a => a • ↑nright d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ ∀ (n_1 : ℕ), ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ n_1 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
· left d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ ContDiff ℝ ↑⊤ fun a => a • ↑ne_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0 fun_prop All goals completed! 🐙e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
· right d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ ∀ (n_1 : ℕ), ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ n_1 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0 intro n' right d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ n' (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
match n' with
| 0 => d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ 0 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
use 1, 1 h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n':ℕ⊢ ∀ (x : ℝ), ‖iteratedFDeriv ℝ 0 (fun a => a • ↑n) x‖ ≤ 1 * (1 + ‖x‖) ^ 1e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
simp [norm_smul] All goals completed! 🐙e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
| 1 => d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ 1 (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
use 0, 1 h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n':ℕ⊢ ∀ (x : ℝ), ‖iteratedFDeriv ℝ 1 (fun a => a • ↑n) x‖ ≤ 1 * (1 + ‖x‖) ^ 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
intro x h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n':ℕx:ℝ⊢ ‖iteratedFDeriv ℝ 1 (fun a => a • ↑n) x‖ ≤ 1 * (1 + ‖x‖) ^ 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
simp [fderiv_smul_const] All goals completed! 🐙e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
| n' + 1 + 1 => d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕ⊢ ∃ k C, ∀ (x : ℝ), ‖iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x‖ ≤ C * (1 + ‖x‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
use 0, 0 h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕ⊢ ∀ (x : ℝ), ‖iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x‖ ≤ 0 * (1 + ‖x‖) ^ 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
intro x h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ ‖iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x‖ ≤ 0 * (1 + ‖x‖) ^ 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
simp only [Real.norm_eq_abs, pow_zero, mul_one, norm_le_zero_iff] h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ iteratedFDeriv ℝ (n' + 1 + 1) (fun a => a • ↑n) x = 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
rw [iteratedFDeriv_succ_eq_comp_right h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘
iteratedFDeriv ℝ (n' + 1) fun y => fderiv ℝ (fun a => a • ↑n) y)
x =
0 h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘
iteratedFDeriv ℝ (n' + 1) fun y => fderiv ℝ (fun a => a • ↑n) y)
x =
0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0]h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘
iteratedFDeriv ℝ (n' + 1) fun y => fderiv ℝ (fun a => a • ↑n) y)
x =
0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
conv_lhs =>
enter [2, 3, y] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝy:ℝ| fderiv ℝ (fun a => a • ↑n) ye_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
simp [fderiv_smul_const] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝy:ℝ| (ContinuousLinearMap.id ℝ ℝ).smulRight ↑ne_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
rw [iteratedFDeriv_succ_const h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘ 0) x = 0 h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘ 0) x = 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0]h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)n'✝:ℕn':ℕx:ℝ⊢ (⇑(continuousMultilinearCurryRightEquiv' ℝ (n' + 1) ℝ (Space d)).symm ∘ 0) x = 0e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
rfl All goals completed! 🐙e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0) (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ ∃ k C, ∀ (x : ℝ), ‖x‖ ≤ C * (1 + ‖x • ↑n‖) ^ ke_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0 use 1, 1 h d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n✝:↑(Metric.sphere 0 1)n:↑(Metric.sphere 0 1)⊢ ∀ (x : ℝ), ‖x‖ ≤ 1 * (1 + ‖x • ↑n‖) ^ 1e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0; simp [norm_smul] All goals completed! 🐙e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0) ηe_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∫ (r : ↑(Set.Ioi 0)), _root_.deriv (fun a => η (a • ↑n)) ↑r ∂Measure.comap Subtype.val volume = -η 0
rw [MeasureTheory.integral_subtype_comap (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ MeasurableSet (Set.Ioi 0) e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ 0 - η (0 • ↑n) = -η 0e_f.hcont d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousWithinAt (fun a => η (a • ↑n)) (Set.Ici 0) 0e_f.hderiv d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun a => η (a • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) xe_f.f'int d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ IntegrableOn (_root_.deriv fun a => η (a • ↑n)) (Set.Ioi 0) volumee_f.hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ Filter.Tendsto (fun a => η (a • ↑n)) Filter.atTop (𝓝 0) simp All goals completed! 🐙e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ 0 - η (0 • ↑n) = -η 0e_f.hcont d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousWithinAt (fun a => η (a • ↑n)) (Set.Ici 0) 0e_f.hderiv d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun a => η (a • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) xe_f.f'int d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ IntegrableOn (_root_.deriv fun a => η (a • ↑n)) (Set.Ioi 0) volumee_f.hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ Filter.Tendsto (fun a => η (a • ↑n)) Filter.atTop (𝓝 0)),
MeasureTheory.integral_Ioi_of_hasDerivAt_of_tendsto (f := fun a => η (a • n)) (m := 0) e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ 0 - η (0 • ↑n) = -η 0e_f.hcont d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousWithinAt (fun a => η (a • ↑n)) (Set.Ici 0) 0e_f.hderiv d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun a => η (a • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) xe_f.f'int d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ IntegrableOn (_root_.deriv fun a => η (a • ↑n)) (Set.Ioi 0) volumee_f.hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ Filter.Tendsto (fun a => η (a • ↑n)) Filter.atTop (𝓝 0)e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ 0 - η (0 • ↑n) = -η 0e_f.hcont d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousWithinAt (fun a => η (a • ↑n)) (Set.Ici 0) 0e_f.hderiv d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun a => η (a • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) xe_f.f'int d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ IntegrableOn (_root_.deriv fun a => η (a • ↑n)) (Set.Ioi 0) volumee_f.hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ Filter.Tendsto (fun a => η (a • ↑n)) Filter.atTop (𝓝 0)]e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ 0 - η (0 • ↑n) = -η 0e_f.hcont d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousWithinAt (fun a => η (a • ↑n)) (Set.Ici 0) 0e_f.hderiv d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun a => η (a • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) xe_f.f'int d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ IntegrableOn (_root_.deriv fun a => η (a • ↑n)) (Set.Ioi 0) volumee_f.hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ Filter.Tendsto (fun a => η (a • ↑n)) Filter.atTop (𝓝 0)
· e_f d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ 0 - η (0 • ↑n) = -η 0 simp All goals completed! 🐙
· e_f.hcont d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousWithinAt (fun a => η (a • ↑n)) (Set.Ici 0) 0 exact ContinuousAt.continuousWithinAt (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ContinuousAt (fun a => η (a • ↑n)) 0 fun_prop All goals completed! 🐙)
· e_f.hderiv d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ ∀ x ∈ Set.Ioi 0, HasDerivAt (fun a => η (a • ↑n)) (_root_.deriv (fun a => η (a • ↑n)) x) x exact fun x _ => DifferentiableAt.hasDerivAt (by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) ηx:ℝx✝:x ∈ Set.Ioi 0⊢ DifferentiableAt ℝ (fun a => η (a • ↑n)) x fun_prop All goals completed! 🐙)
· e_f.f'int d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ IntegrableOn (_root_.deriv fun a => η (a • ↑n)) (Set.Ioi 0) volume exact (integrable ((derivCLM ℝ ℝ) (η' n))).integrableOn All goals completed! 🐙
· e_f.hf d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)n:↑(Metric.sphere 0 1)η':↑(Metric.sphere 0 1) → 𝓢(ℝ, ℝ) := fun n => (compCLM ℝ ⋯ ⋯) η⊢ Filter.Tendsto (fun a => η (a • ↑n)) Filter.atTop (𝓝 0) exact Filter.Tendsto.mono_left (η' n).toZeroAtInfty.zero_at_infty' atTop_le_cocompact All goals completed! 🐙
_ = η 0 * (d * (volume (α := Space d)).real (Metric.ball 0 1)) := by d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ -∫ (n : ↑(Metric.sphere 0 1)), -η 0 ∂volume.toSphere = η 0 * (↑d * volume.real (Metric.ball 0 1))
simp only [integral_const, Measure.toSphere_real_apply_univ, finrank_eq_dim, smul_eq_mul,
mul_neg, neg_neg] d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ ↑d * volume.real (Metric.ball 0 1) * η 0 = η 0 * (↑d * volume.real (Metric.ball 0 1))
ring All goals completed! 🐙
simp only [_root_.smul_apply, diracDelta_apply, smul_eq_mul] calc.step d:ℕinst✝:NeZero dη:𝓢(Space d, ℝ)⊢ η 0 * (↑d * volume.real (Metric.ball 0 1)) = ↑d * volume.real (Metric.ball 0 1) * η 0
ring All goals completed! 🐙B.6. The Laplacian of the fundamental solution
The distributional Laplacian of ‖x‖ ^ (2 - d) is (2 - d) * d * volume (Metric.ball 0 1)
times the Dirac delta at the origin. For d ≥ 3 this ‖x‖ ^ (2 - d) is the (singular)
fundamental solution of the Laplacian, and for d = 1 it is ‖x‖. When d = 2 the exponent
vanishes, so the identity collapses to the trivial Δᵈ 1 = 0; the genuine two-dimensional
fundamental solution is the logarithm, proved in distLaplacian_fundamentalSolution_log_norm.
The statement also holds vacuously for d = 0, where the space is trivial.
lemma distLaplacian_fundamentalSolution_norm_zpow {d : ℕ} :
Δᵈ (distOfFunction (fun x : Space d => ‖x‖ ^ (- ((d : ℤ) - 2)))
(IsDistBounded.pow _ (by 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace ℝ Einst✝:NormedSpace ℝ Fd:ℕ⊢ -↑(d - 1) ≤ -(↑d - 2) omega All goals completed! 🐙))) =
((- ((d : ℝ) - 2)) * d *
(volume (α := Space d)).real (Metric.ball 0 1)) • diracDelta ℝ 0 := by d:ℕ⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
by_cases h : d = 0 pos d:ℕh:d = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0neg d:ℕh:¬d = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
· pos d:ℕh:d = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 subst h pos ⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
have hzero :
distOfFunction (fun x : Space 0 => ‖x‖ ^ 2)
(IsDistBounded.pow _ (by ⊢ -↑(0 - 1) ≤ 2 pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 omega All goals completed! 🐙 pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0)) = 0 := by d:ℕ⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
ext η η:𝓢(Space 0, ℝ)⊢ (distOfFunction (fun x => ‖x‖ ^ 2) ⋯) η = 0 ηpos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
rw [distOfFunction_apply η:𝓢(Space 0, ℝ)⊢ ∫ (x : Space 0), η x • ‖x‖ ^ 2 = 0 η η:𝓢(Space 0, ℝ)⊢ ∫ (x : Space 0), η x • ‖x‖ ^ 2 = 0 ηpos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0] η:𝓢(Space 0, ℝ)⊢ ∫ (x : Space 0), η x • ‖x‖ ^ 2 = 0 ηpos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
refine integral_eq_zero_of_ae (ae_of_all _ fun x => ?_) η:𝓢(Space 0, ℝ)x:Space 0⊢ (fun x => η x • ‖x‖ ^ 2) x = 0 xpos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
rw [Subsingleton.elim x 0 η:𝓢(Space 0, ℝ)x:Space 0⊢ (fun x => η x • ‖x‖ ^ 2) 0 = 0 0 η:𝓢(Space 0, ℝ)x:Space 0⊢ (fun x => η x • ‖x‖ ^ 2) 0 = 0 0pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0] η:𝓢(Space 0, ℝ)x:Space 0⊢ (fun x => η x • ‖x‖ ^ 2) 0 = 0 0pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
simp [zero_zpow_eq]pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0pos hzero:distOfFunction (fun x => ‖x‖ ^ 2) ⋯ = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑0 - 2))) ⋯) = (-(↑0 - 2) * ↑0 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
simp [hzero] All goals completed! 🐙
· neg d:ℕh:¬d = 0⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 haveI : NeZero d := ⟨by d:ℕh:¬d = 0⊢ d ≠ 0 omega All goals completed! 🐙⟩
rw [distLaplacian neg d:ℕh:¬d = 0this:NeZero d⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) =
(-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 neg d:ℕh:¬d = 0this:NeZero d⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) =
(-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0]neg d:ℕh:¬d = 0this:NeZero d⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) =
(-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
change ∇ᵈ ⬝ (∇ᵈ (distOfFunction
(fun x : Space d => ‖x‖ ^ (- ((d : ℤ) - 2)))
(IsDistBounded.pow (- ((d : ℤ) - 2)) (by d:ℕh:¬d = 0this:NeZero d⊢ -↑(d - 1) ≤ -(↑d - 2) omega All goals completed! 🐙)))) = _
rw [distGrad_distOfFunction_norm_zpow (- ((d : ℤ) - 2)) (by d:ℕh:¬d = 0this:NeZero d⊢ -↑(d - 1) + 1 ≤ -(↑d - 2) neg d:ℕh:¬d = 0this:NeZero d⊢ distDiv (distOfFunction (fun x => (↑(-(↑d - 2)) * ‖x‖ ^ (-(↑d - 2) - 2)) • basis.repr x) ⋯) =
(-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 omega All goals completed! 🐙neg d:ℕh:¬d = 0this:NeZero d⊢ distDiv (distOfFunction (fun x => (↑(-(↑d - 2)) * ‖x‖ ^ (-(↑d - 2) - 2)) • basis.repr x) ⋯) =
(-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0)]neg d:ℕh:¬d = 0this:NeZero d⊢ distDiv (distOfFunction (fun x => (↑(-(↑d - 2)) * ‖x‖ ^ (-(↑d - 2) - 2)) • basis.repr x) ⋯) =
(-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
simp only [neg_sub, Int.cast_sub, Int.cast_ofNat, Int.cast_natCast, sub_sub_cancel_left] neg d:ℕh:¬d = 0this:NeZero d⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
have hdist :
distOfFunction
(fun x : Space d =>
((2 - (d : ℝ)) * ‖x‖ ^ (- (d : ℤ))) • basis.repr x)
(by d:ℕh:¬d = 0this:NeZero d⊢ IsDistBounded fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
simpa [smul_smul] using
(IsDistBounded.const_fun_smul
(F := EuclideanSpace ℝ (Fin d))
(IsDistBounded.zpow_smul_repr_self (- (d : ℤ)) (by d:ℕh:¬d = 0this:NeZero d⊢ -↑(d - 1) - 1 ≤ -↑dneg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 omega All goals completed! 🐙neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0))
(2 - (d : ℝ)))) =
(2 - (d : ℝ)) • distOfFunction
(fun x : Space d =>
‖x‖ ^ (- (d : ℤ)) • basis.repr x)
(IsDistBounded.zpow_smul_repr_self (- (d : ℤ)) (by d:ℕh:¬d = 0this:NeZero d⊢ -↑(d - 1) - 1 ≤ -↑dneg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 omega All goals completed! 🐙neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0)) := by d:ℕ⊢ Δᵈ (distOfFunction (fun x => ‖x‖ ^ (-(↑d - 2))) ⋯) = (-(↑d - 2) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
convert distOfFunction_smul_fun
(fun x : Space d =>
‖x‖ ^ (- (d : ℤ)) • basis.repr x)
(IsDistBounded.zpow_smul_repr_self (- (d : ℤ)) (by d:ℕh:¬d = 0this:NeZero d⊢ -↑(d - 1) - 1 ≤ -↑dneg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 omega All goals completed! 🐙neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0))
(2 - (d : ℝ)) using 1
ext x d:ℕh:¬d = 0this:NeZero dx:𝓢(Space d, ℝ)i✝:Fin d⊢ ((distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) x).ofLp i✝ =
((distOfFunction (fun x => (2 - ↑d) • ‖x‖ ^ (-↑d) • basis.repr x) ⋯) x).ofLp i✝neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
simp [smul_smul]neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv (distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
rw [hdist, neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ distDiv ((2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ ((2 - ↑d) * (↑d * volume.real (Metric.ball 0 1))) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 map_smul, neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ (2 - ↑d) • distDiv (distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯) =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ ((2 - ↑d) * (↑d * volume.real (Metric.ball 0 1))) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 distDiv_inv_pow_eq_dim, neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ (2 - ↑d) • (↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ ((2 - ↑d) * (↑d * volume.real (Metric.ball 0 1))) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 smul_smul neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ ((2 - ↑d) * (↑d * volume.real (Metric.ball 0 1))) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ ((2 - ↑d) * (↑d * volume.real (Metric.ball 0 1))) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0]neg d:ℕh:¬d = 0this:NeZero dhdist:distOfFunction (fun x => ((2 - ↑d) * ‖x‖ ^ (-↑d)) • basis.repr x) ⋯ =
(2 - ↑d) • distOfFunction (fun x => ‖x‖ ^ (-↑d) • basis.repr x) ⋯⊢ ((2 - ↑d) * (↑d * volume.real (Metric.ball 0 1))) • diracDelta ℝ 0 =
((2 - ↑d) * ↑d * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
ring_nf All goals completed! 🐙
In dimension two the fundamental solution of the Laplacian is the logarithm: the
distributional Laplacian of Real.log ‖x‖ is 2 * volume (Metric.ball 0 1) times the Dirac
delta at the origin.
lemma distLaplacian_fundamentalSolution_log_norm :
Δᵈ (distOfFunction (fun x : Space 2 => Real.log ‖x‖) IsDistBounded.log_norm) =
(2 * (volume (α := Space 2)).real (Metric.ball 0 1)) • diracDelta ℝ 0 := by ⊢ Δᵈ (distOfFunction (fun x => Real.log ‖x‖) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
rw [distLaplacian ⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => Real.log ‖x‖) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 ⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => Real.log ‖x‖) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0] ⊢ (distDiv ∘ₗ ∇ᵈ) (distOfFunction (fun x => Real.log ‖x‖) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
change ∇ᵈ ⬝ (∇ᵈ (distOfFunction (fun x : Space 2 => Real.log ‖x‖)
IsDistBounded.log_norm)) = _ ⊢ distDiv (∇ᵈ (distOfFunction (fun x => Real.log ‖x‖) ⋯)) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
rw [distGrad_distOfFunction_log_norm (by ⊢ 2 ≤ 2 ⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0 norm_num All goals completed! 🐙 ⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0)] ⊢ distDiv (distOfFunction (fun x => ‖x‖ ^ (-2) • basis.repr x) ⋯) = (2 * volume.real (Metric.ball 0 1)) • diracDelta ℝ 0
simpa only [Nat.cast_ofNat] using distDiv_inv_pow_eq_dim (d := 2) All goals completed! 🐙