Stat.Nonparametric.Approximation.Holder

Hölder-class approximation and interpolation tools.

Defs 5 core · 5 supporting This module fixes the *generic* (estimand-agnostic) vocabulary for the Tsybakov nonparametric-minimax lower-bound primitive holder_point_l1_interpolation: for a function in a multivariate Hölder ball, a pointwise value f ★ isCompact_supBall★ volume_supBall

Generic multivariate Hölder ball and moment-cancelling product kernel — definitions

This module fixes the generic (estimand-agnostic) vocabulary for the Tsybakov nonparametric-minimax lower-bound primitive holder_point_l1_interpolation: for a function in a multivariate Hölder ball, a pointwise value forces a local L¹ mass lower bound via a moment-cancelling kernel.

The definitions are estimand-agnostic: they apply to any regression or response function and carry no dependency on a causal-law or treatment-effect type. This makes the primitive reusable in every Hölder-class two-point or Assouad lower bound.

* supBall x0 r — the sup-norm r-neighbourhood (closed cube) around x0, together with its basic geometry/measure API (supBall_eq_pi, isCompact_supBall, measurableSet_supBall, mem_supBall_self, volume_supBall). * HolderBallStd f γ M S — the standard ⌈γ⌉-1-convention multivariate Hölder ball of order γ, radius M, on S. * prodKernel k d — the tensorized product kernel u ↦ ∏ᵢ k (u i). * mem_cube, isCompact_cube — the same two facts for the axis-aligned box [a,b]^d, the other cube shape that shows up in Hölder-class lower bounds.

abbrev supBall reviewed
Causalean.Stat.Nonparametric

For a nonnegative integer dimension, a centre in that-dimensional real space, and a real radius, the closed coordinatewise neighbourhood is the finite-dimensional specialization of the shared sup-norm ball from the monomial-Gram layer.

Definition (Lean source)
d :
ℕ
x0 :
Fin d → ℝ
r :
ℝ
supBall x0 r :
Set (Fin d → ℝ)
supBall x0 r
lemma isCompact_supBall reviewed
Causalean.Stat.Nonparametric

A closed sup-norm ball — the axis-aligned cube, or box, of half-width r centred at a point x0 in d-dimensional space — is compact, being a finite product of closed bounded intervals.

Formal statement
d :
ℕ
x0 :
Fin d → ℝ
r :
ℝ
IsCompact (supBall x0 r)
Proof (Lean source)
lemma isCompact_supBall {d : ℕ} (x0 : Fin d → ℝ) (r : ℝ) : IsCompact (supBall x0 r) := by rw [supBall_eq_pi]; exact isCompact_univ_pi (fun _ => isCompact_Icc)
Causalean.Stat.Nonparametric.isCompact_supBall · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:61 · uses supBall
lemma volume_supBall reviewed
Causalean.Stat.Nonparametric

The Lebesgue volume of a closed sup-norm ball — the axis-aligned cube of side 2r centred at x0 in d dimensions — equals the d-th power of the side length, (2r)^d. No sign restriction on r is needed: a negative half-width gives an empty cube and zero volume when d > 0; when d = 0, the cube is the singleton whole space and both sides equal one.

Formal statement
d :
ℕ
x0 :
Fin d → ℝ
r :
ℝ
volume (supBall x0 r) = ofReal (2 * r) ^ d
Proof (Lean source)
lemma volume_supBall {d : ℕ} (x0 : Fin d → ℝ) (r : ℝ) : volume (supBall x0 r) = ofReal (2 * r) ^ d := by rw [supBall_eq_pi, Set.pi_univ_Icc, Real.volume_Icc_pi] simp_rw [show ∀ i : Fin d, x0 i + r - (x0 i - r) = 2 * r from fun i => by ring] simp
Causalean.Stat.Nonparametric.volume_supBall · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:79 · uses supBall
def HolderBallStd reviewed
Causalean.Stat.Nonparametric

For a nonnegative integer dimension, a real-valued function on that-dimensional real space, a real smoothness order, a real radius, and a region of that space, the standard multivariate Hölder ball condition requires that (1) the function has continuous derivatives through order ⌈order⌉−1\lceil\mathrm{order}\rceil-1 on the region, (2) every derivative of order at most ⌈order⌉−1\lceil\mathrm{order}\rceil-1 has norm at most the radius there, and (3) the derivative of order ⌈order⌉−1\lceil\mathrm{order}\rceil-1 changes between any two points in the region by at most the radius times their distance to the power order−(⌈order⌉−1)\mathrm{order}-(\lceil\mathrm{order}\rceil-1).

Definition (Lean source)
d :
ℕ
f :
(Fin d → ℝ) → ℝ
order M :
ℝ
S :
Set (Fin d → ℝ)
HolderBallStd f order M S :
Prop
clause 1
ContDiffOn ℝ (⌈order⌉₊ - 1) f S
clause 2
j :
ℕ
j ≤ ⌈order⌉₊ - 1
x ∈ S :
‖iteratedFDeriv ℝ j f x‖ ≤ M
clause 3
x ∈ S :
y ∈ S :
‖iteratedFDeriv ℝ (⌈order⌉₊ - 1) f x - iteratedFDeriv ℝ (⌈order⌉₊ - 1) f y‖
≤ M * ‖x - y‖ ^ (order - ((⌈order⌉₊ - 1 : ℕ) : ℝ))
Causalean.Stat.Nonparametric.HolderBallStd · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:103
def prodKernel reviewed
Causalean.Stat.Nonparametric

For a one-dimensional real-valued kernel and a nonnegative integer dimension, the multivariate product kernel assigns to each point the product of the one-dimensional kernel evaluated at all of its coordinates.

Definition (Lean source)
k :
ℝ → ℝ
d :
ℕ
prodKernel k d :
(Fin d → ℝ) → ℝ
fun u => ∏ i : Fin d, k (u i)
5 supporting declarations (lemmas, instances)
  • supBall_eq_pi lemma — A closed sup-norm ball — the axis-aligned cube of half-width r centred at a point — is exactly the product of the coordinate intervals of radius r around the centre's coordinates.
    d :
    ℕ
    x0 :
    Fin d → ℝ
    r :
    ℝ
    supBall x0 r = Set.univ.pi (fun i => Icc (x0 i - r) (x0 i + r))
    Proof (Lean source)
    lemma supBall_eq_pi {d : ℕ} (x0 : Fin d → ℝ) (r : ℝ) : supBall x0 r = Set.univ.pi (fun i => Icc (x0 i - r) (x0 i + r)) := by ext x simp only [supBall, Set.mem_setOf_eq, Set.mem_univ_pi, Set.mem_Icc] refine ⟨fun h i => ?_, fun h i => ?_⟩ · have := (abs_le).mp (h i); constructor <;> linarith [this.1, this.2] · rw [abs_le]; have := h i; constructor <;> linarith [this.1, this.2]
    Causalean.Stat.Nonparametric.supBall_eq_pi · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:51
  • measurableSet_supBall lemma — A closed sup-norm ball (an axis-aligned cube, or box) is a measurable set.
    d :
    ℕ
    x0 :
    Fin d → ℝ
    r :
    ℝ
    MeasurableSet (supBall x0 r)
    Proof (Lean source)
    lemma measurableSet_supBall {d : ℕ} (x0 : Fin d → ℝ) (r : ℝ) : MeasurableSet (supBall x0 r) := by rw [supBall_eq_pi]; exact MeasurableSet.univ_pi (fun _ => measurableSet_Icc)
    Causalean.Stat.Nonparametric.measurableSet_supBall · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:68
  • mem_supBall_self lemma — A closed sup-norm ball (axis-aligned cube) of nonnegative half-width contains its own centre.
    d :
    ℕ
    x0 :
    Fin d → ℝ
    r :
    ℝ
    hr :
    0 ≤ r
    x0 ∈ supBall x0 r
    Proof (Lean source)
    lemma mem_supBall_self {d : ℕ} (x0 : Fin d → ℝ) {r : ℝ} (hr : 0 ≤ r) : x0 ∈ supBall x0 r := by intro i; simp only [sub_self, abs_zero]; exact hr
    Causalean.Stat.Nonparametric.mem_supBall_self · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:73
  • mem_cube lemma — Membership in an axis-aligned box: a point lies in it exactly when each of its coordinates lies between a and b.
    ι :
    Type*
    a b :
    ℝ
    x :
    ι → ℝ
    x ∈ Set.univ.pi (fun _ : ι => Icc a b) ↔ ∀ i, a ≤ x i ∧ x i ≤ b
    Proof (Lean source)
    lemma mem_cube {ι : Type*} {a b : ℝ} {x : ι → ℝ} : x ∈ Set.univ.pi (fun _ : ι => Icc a b) ↔ ∀ i, a ≤ x i ∧ x i ≤ b := by simp only [Set.mem_univ_pi, Set.mem_Icc]
  • isCompact_cube lemma — An axis-aligned box over a finite index type is compact: it is a finite product of closed bounded intervals.
    ι :
    Type*
    Finite ι
    a b :
    ℝ
    IsCompact (Set.univ.pi (fun _ : ι => Icc a b))
    Proof (Lean source)
    lemma isCompact_cube {ι : Type*} [Finite ι] (a b : ℝ) : IsCompact (Set.univ.pi (fun _ : ι => Icc a b)) := by letI := ofFinite ι exact isCompact_univ_pi (fun _ => isCompact_Icc)
    Causalean.Stat.Nonparametric.isCompact_cube · Causalean/Stat/Nonparametric/Approximation/Holder/Defs.lean:96
Cube­Extension 1 core · 0 supporting This module translates the extension theorem for intrinsic cube jets into the standard ambient-jet Hölder-ball vocabulary used by nonparametric models. ★ exists_holderBallStd_extension

Ambient Hölder-ball bridge for intrinsic cube data

This module translates the extension theorem for intrinsic cube jets into the standard ambient-jet Hölder-ball vocabulary used by nonparametric models.

theorem exists_holderBallStd_extension reviewed
Causalean.Stat.Nonparametric.Approximation.Holder

For a dimension and a smoothness index that is positive, there is a positive constant, depending only on the dimension and the smoothness index, such that every function in the intrinsic cube Hölder ball of that smoothness with any nonnegative radius has an ambient function that agrees with it on the cube and belongs to the standard ambient Hölder ball of the same smoothness on the cube, with radius the constant times the original radius.

Formal statement
d :
ℕ
β :
ℝ
hβ :
0 < β
∃ A : ℝ,
0 < A
conclusion 1
u :
(Fin d → ℝ) → ℝ
L :
ℝ
0 ≤ L
CubeHolderBall d (⌈β⌉₊ - 1) (β - ((⌈β⌉₊ - 1 : ℕ) : ℝ)) L u
∃ U : (Fin d → ℝ) → ℝ,
EqOn U u (cube d)
HolderBallStd U β (A * L) (cube d)
Proof (Lean source)
theorem exists_holderBallStd_extension (d : ℕ) (β : ℝ) (hβ : 0 < β) : ∃ A : ℝ, 0 < A ∧ ∀ (u : (Fin d → ℝ) → ℝ) (L : ℝ), 0 ≤ L → CubeHolderBall d (⌈β⌉₊ - 1) (β - ((⌈β⌉₊ - 1 : ℕ) : ℝ)) L u → ∃ U : (Fin d → ℝ) → ℝ, EqOn U u (cube d) ∧ HolderBallStd U β (A * L) (cube d) := by have hceil : 1 ≤ ⌈β⌉₊ := Nat.one_le_ceil_iff.mpr hβ have hcast : ((⌈β⌉₊ - 1 : ℕ) : ℝ) = (⌈β⌉₊ : ℝ) - 1 := by rw [Nat.cast_sub hceil, Nat.cast_one] have hs : 0 < β - ((⌈β⌉₊ - 1 : ℕ) : ℝ) := by rw [hcast] linarith [Nat.ceil_lt_add_one hβ.le] have hs1 : β - ((⌈β⌉₊ - 1 : ℕ) : ℝ) ≤ 1 := by rw [hcast] linarith [Nat.le_ceil β] obtain ⟨A, hA, hExt⟩ := exists_global_holder_extension d (⌈β⌉₊ - 1) (β - ((⌈β⌉₊ - 1 : ℕ) : ℝ)) hs hs1 refine ⟨A, hA, ?_⟩ intro u L hL hu obtain ⟨U, hEq, hSmooth, hBounds, hMod⟩ := hExt u L hL hu refine ⟨U, hEq, ?_⟩ exact ⟨hSmooth.contDiffOn, (fun j hj x hx => hBounds j hj x), (fun x hx y hy => hMod x y)⟩
Causalean.Stat.Nonparametric.Approximation.Holder.exists_holderBallStd_extension · Causalean/Stat/Nonparametric/Approximation/Holder/CubeExtension.lean:19 · uses CubeHolderBall , cube , HolderBallStd
Interpolation_Part1 1 core · 6 supporting This file proves the reusable analytic steps used by the interpolation capstone in Interpolation_Part2.lean: bandwidth optimization, change of variables for a smoothed value, mass and moment identities for product kernel ★ holder_line_taylor

Analytic ingredients for Hölder pointwise-to-L¹ interpolation

This file proves the reusable analytic steps used by the interpolation capstone in Interpolation_Part2.lean: bandwidth optimization, change of variables for a smoothed value, mass and moment identities for product kernels on the unit cube, cancellation of diagonal Taylor terms, and the one-dimensional Taylor remainder along a line. The final construction of the moment-cancelling kernel is in Kernel.lean; the pointwise-to-local-L¹ theorem is in Interpolation_Part2.lean.

lemma holder_line_taylor reviewed
Causalean.Stat.Nonparametric

For a dimension, smoothness order, radius, function, ambient domain, and open local domain, if the smoothness order is positive, the function lies in the standard Hölder ball, the local domain is open, and is contained in the ambient domain, then for a base point and displacement, if their full line segment lies in the local domain, the function at the displaced point differs from its diagonal Taylor polynomial by at most the Hölder remainder bound.

Formal statement
d :
ℕ
γ M :
ℝ
g :
(Fin d → ℝ) → ℝ
S U :
Set (Fin d → ℝ)
hγ :
0 < γ
hg :
HolderBallStd g γ M S
hU :
hUS :
U ⊆ S
x0 y :
Fin d → ℝ
hseg :
∀ t ∈ Icc (0 : ℝ) 1, x0 + t • y ∈ U
|g (x0 + y)
- ∑ j ∈ range (⌈γ⌉₊ - 1 + 1), (1 / (Nat.factorial j : ℝ)) * iteratedFDeriv ℝ j g x0 (fun _ => y)|
≤ (M / (Nat.factorial (⌈γ⌉₊ - 1) : ℝ)) * ‖y‖ ^ γ
Proof (Lean source)
lemma holder_line_taylor {d : ℕ} {γ M : ℝ} {g : (Fin d → ℝ) → ℝ} {S U : Set (Fin d → ℝ)} (hγ : 0 < γ) (hg : HolderBallStd g γ M S) (hU : IsOpen U) (hUS : U ⊆ S) (x0 y : Fin d → ℝ) (hseg : ∀ t ∈ Icc (0 : ℝ) 1, x0 + t • y ∈ U) : |g (x0 + y) - ∑ j ∈ range (⌈γ⌉₊ - 1 + 1), (1 / (Nat.factorial j : ℝ)) * iteratedFDeriv ℝ j g x0 (fun _ => y)| ≤ (M / (Nat.factorial (⌈γ⌉₊ - 1) : ℝ)) * ‖y‖ ^ γ := by have h0mem : x0 ∈ U := by have := hseg 0 (Set.left_mem_Icc.mpr zero_le_one); simpa using this have h1mem : x0 + y ∈ U := by have := hseg 1 (Set.right_mem_Icc.mpr zero_le_one); simpa using this have hx0S : x0 ∈ S := hUS h0mem have hx0yS : x0 + y ∈ S := hUS h1mem rcases Nat.eq_zero_or_pos (⌈γ⌉₊ - 1) with hm0 | hmpos · -- Case m = 0 (0 < γ ≤ 1): the sum is just `g x0`, no Taylor needed. have hb := holder_diag_diff_le hg (x0 + y) x0 hx0yS hx0S y rw [hm0] at hb ⊢ simp only [zero_add, Finset.sum_range_one, Nat.factorial_zero, Nat.cast_one, one_div, inv_one, one_mul, iteratedFDeriv_zero_apply, div_one, Nat.cast_zero, sub_zero, pow_zero, mul_one] at hb ⊢ rwa [add_sub_cancel_left] at hb · -- Case m ≥ 1 (γ > 1): Taylor with Lagrange remainder on the line. obtain ⟨n, hn⟩ : ∃ n, ⌈γ⌉₊ - 1 = n + 1 := ⟨⌈γ⌉₊ - 2, by omega⟩ have hM : 0 ≤ M := le_trans (norm_nonneg _) (hg.2.1 0 (zero_le _) x0 hx0S) have hfac : (0 : ℝ) < (Nat.factorial (n + 1) : ℝ) := by exact_mod_cast Nat.factorial_pos (n + 1) set K : Set (Fin d → ℝ) := (fun t : ℝ => x0 + t • y) '' Icc 0 1 with hKdef have hcontLine : Continuous (fun t : ℝ => x0 + t • y) := by fun_prop have hK : IsCompact K := isCompact_Icc.image hcontLine have hKU : K ⊆ U := by rintro _ ⟨t, ht, rfl⟩; exact hseg t ht have hx0K : x0 ∈ K := ⟨0, Set.left_mem_Icc.mpr zero_le_one, by simp⟩ have hx0yK : x0 + y ∈ K := ⟨1, Set.right_mem_Icc.mpr zero_le_one, by simp⟩ have hxξK : ∀ ξ : ℝ, ξ ∈ Ioo (0 : ℝ) 1 → x0 + ξ • y ∈ K := fun ξ hξ => ⟨ξ, ⟨hξ.1.le, hξ.2.le⟩, rfl⟩ obtain ⟨gt, hgt_cd, hgt_eq⟩ := exists_global_contDiff_of_contDiffOn (⌈γ⌉₊ - 1) hg.1 hU hUS hK hKU have htrans : ∀ (i : ℕ) (p : Fin d → ℝ), p ∈ K → iteratedFDeriv ℝ i gt p = iteratedFDeriv ℝ i g p := fun i p hp => ((hgt_eq p hp).iteratedFDeriv ℝ i).eq_of_nhds have hlineCD : ContDiff ℝ ((⌈γ⌉₊ - 1 : ℕ) : WithTop ℕ∞) (fun s : ℝ => x0 + s • y) := by fun_prop set φ : ℝ → ℝ := fun s => gt (x0 + s • y) with hφdef have hφCD : ContDiff ℝ ((⌈γ⌉₊ - 1 : ℕ) : WithTop ℕ∞) φ := by simpa [hφdef, Function.comp_def] using hgt_cd.comp hlineCD have hcoef : ∀ k : ℕ, k ≤ ⌈γ⌉₊ - 1 → iteratedDerivWithin k φ (Icc (0 : ℝ) 1) 0 = iteratedFDeriv ℝ k g x0 (fun _ => y) := by intro k hk have hCDk : ContDiff ℝ (k : WithTop ℕ∞) gt := hgt_cd.of_le (natCast_le_withTop hk) have hCDkφ : ContDiffAt ℝ (k : WithTop ℕ∞) φ 0 := (hφCD.of_le (natCast_le_withTop hk)).contDiffAt rw [iteratedDerivWithin_eq_iteratedDeriv uniqueDiffOn_Icc_zero_one hCDkφ (Set.left_mem_Icc.mpr zero_le_one), hφdef, line_iteratedDeriv gt k hCDk x0 y 0] simp only [zero_smul, add_zero] rw [htrans k x0 hx0K] have hCDgt : ContDiff ℝ ((n + 1 : ℕ) : WithTop ℕ∞) gt := hn ▸ hgt_cd have hφn : ContDiffOn ℝ (n : WithTop ℕ∞) φ (Icc (0 : ℝ) 1) := ((hn ▸ hφCD).of_le (natCast_le_withTop (le_succ n))).contDiffOn have hφn1 : ContDiffOn ℝ ((n + 1 : ℕ) : WithTop ℕ∞) φ (Icc (0 : ℝ) 1) := (hn ▸ hφCD).contDiffOn have hf' : DifferentiableOn ℝ (iteratedDerivWithin n φ (Icc (0 : ℝ) 1)) (Ioo 0 1) := (hφn1.differentiableOn_iteratedDerivWithin (natCast_lt_withTop (lt_succ_self n)) uniqueDiffOn_Icc_zero_one).mono Set.Ioo_subset_Icc_self have huIcc01 : uIcc (0 : ℝ) 1 = Icc (0 : ℝ) 1 := Set.uIcc_of_le zero_le_one have huIoo01 : Set.uIoo (0 : ℝ) 1 = Ioo (0 : ℝ) 1 := Set.uIoo_of_le zero_le_one obtain ⟨ξ, hξ, htay⟩ := taylor_mean_remainder_lagrange (f := φ) (x₀ := (0 : ℝ)) (x := (1 : ℝ)) (zero_ne_one) (by rw [huIcc01]; exact hφn) (by rw [huIcc01, huIoo01]; exact hf') rw [huIcc01] at htay rw [huIoo01] at hξ have hφ1 : φ 1 = g (x0 + y) := by have := (hgt_eq (x0 + y) hx0yK).eq_of_nhds; simpa [hφdef, one_smul] using this have hsum : taylorWithinEval φ n (Icc (0 : ℝ) 1) 0 1 = ∑ k ∈ range (n + 1), 1 / (Nat.factorial k : ℝ) * iteratedFDeriv ℝ k g x0 (fun _ => y) := by rw [taylor_within_apply] apply Finset.sum_congr rfl intro k hk simp only [Finset.mem_range] at hk rw [hcoef k (by rw [hn]; omega)] simp only [sub_zero, one_pow, mul_one, smul_eq_mul, one_div] have hR : iteratedDerivWithin (n + 1) φ (Icc (0 : ℝ) 1) ξ = iteratedFDeriv ℝ (n + 1) g (x0 + ξ • y) (fun _ => y) := by have hCDξ : ContDiffAt ℝ ((n + 1 : ℕ) : WithTop ℕ∞) φ ξ := (hn ▸ hφCD).contDiffAt rw [iteratedDerivWithin_eq_iteratedDeriv uniqueDiffOn_Icc_zero_one hCDξ (Set.Ioo_subset_Icc_self hξ), hφdef, line_iteratedDeriv gt (n + 1) hCDgt x0 y ξ, htrans (n + 1) (x0 + ξ • y) (hxξK ξ hξ)] have eq1 : g (x0 + y) - ∑ k ∈ range (n + 1), 1 / (Nat.factorial k : ℝ) * iteratedFDeriv ℝ k g x0 (fun _ => y) = iteratedFDeriv ℝ (n + 1) g (x0 + ξ • y) (fun _ => y) / (Nat.factorial (n + 1) : ℝ) := by rw [hφ1, hsum, hR] at htay; simpa using htay have hxξS : x0 + ξ • y ∈ S := hUS (hKU (hxξK ξ hξ)) have hbound := holder_diag_diff_le hg (x0 + ξ • y) x0 hxξS hx0S y rw [hn] at hbound rw [add_sub_cancel_left, norm_smul, Real.norm_eq_abs, abs_of_pos hξ.1] at hbound have hlt : ((n + 1 : ℕ) : ℝ) < γ := by have := Nat.lt_ceil.mp (show ⌈γ⌉₊ - 1 < ⌈γ⌉₊ by omega); rw [hn] at this; exact this have he_nonneg : 0 ≤ γ - ((n + 1 : ℕ) : ℝ) := by linarith have hem : (γ - ((n + 1 : ℕ) : ℝ)) + ((n + 1 : ℕ) : ℝ) = γ := by ring have hcombine : ‖y‖ ^ (γ - ((n + 1 : ℕ) : ℝ)) * ‖y‖ ^ (n + 1) = ‖y‖ ^ γ := by rw [← Real.rpow_natCast (‖y‖) (n + 1), ← Real.rpow_add' (norm_nonneg y) (by rw [hem]; exact ne_of_gt hγ), hem] have key : (ξ * ‖y‖) ^ (γ - ((n + 1 : ℕ) : ℝ)) * ‖y‖ ^ (n + 1) ≤ ‖y‖ ^ γ := by rw [Real.mul_rpow hξ.1.le (norm_nonneg y), mul_assoc, hcombine] calc ξ ^ (γ - ((n + 1 : ℕ) : ℝ)) * ‖y‖ ^ γ ≤ 1 * ‖y‖ ^ γ := mul_le_mul_of_nonneg_right (Real.rpow_le_one hξ.1.le hξ.2.le he_nonneg) (Real.rpow_nonneg (norm_nonneg y) γ) _ = ‖y‖ ^ γ := one_mul _ have hmid : M * (ξ * ‖y‖) ^ (γ - ((n + 1 : ℕ) : ℝ)) * ‖y‖ ^ (n + 1) ≤ M * ‖y‖ ^ γ := by rw [mul_assoc]; exact mul_le_mul_of_nonneg_left key hM have hgoal_eq : g (x0 + y) - ∑ j ∈ range (n + 1 + 1), 1 / (Nat.factorial j : ℝ) * iteratedFDeriv ℝ j g x0 (fun _ => y) = 1 / (Nat.factorial (n + 1) : ℝ) * (iteratedFDeriv ℝ (n + 1) g (x0 + ξ • y) (fun _ => y) - iteratedFDeriv ℝ (n + 1) g x0 (fun _ => y)) := by rw [Finset.sum_range_succ]; linear_combination eq1 rw [hn, hgoal_eq, abs_mul, abs_of_pos (div_pos one_pos hfac)] calc 1 / (Nat.factorial (n + 1) : ℝ) * |iteratedFDeriv ℝ (n + 1) g (x0 + ξ • y) (fun _ => y) - iteratedFDeriv ℝ (n + 1) g x0 (fun _ => y)| ≤ 1 / (Nat.factorial (n + 1) : ℝ) * (M * (ξ * ‖y‖) ^ (γ - ((n + 1 : ℕ) : ℝ)) * ‖y‖ ^ (n + 1)) := mul_le_mul_of_nonneg_left hbound (div_pos one_pos hfac).le _ ≤ 1 / (Nat.factorial (n + 1) : ℝ) * (M * ‖y‖ ^ γ) := mul_le_mul_of_nonneg_left hmid (div_pos one_pos hfac).le _ = M / (Nat.factorial (n + 1) : ℝ) * ‖y‖ ^ γ := by ring
6 supporting declarations (lemmas, instances)
  • l1_lower_of_bias_bound theorem — The bandwidth optimization converts a lower bound on a kernel-smoothed signal into the Hölder interpolation rate: local absolute mass grows at least as the pointwise signal to the power one plus dimension divided by smoothness.
    d :
    ℕ
    γ Ksup Δ Ival cstar h :
    ℝ
    hKsup :
    0 < Ksup
    hΔ :
    0 < Δ
    hcstar :
    0 < cstar
    hheq :
    h = cstar * Δ ^ ((1 : ℝ) / γ)
    hbound :
    3 * Δ / 4 ≤ Ksup * h⁻¹ ^ d * Ival
    (3 / (4 * Ksup)) * cstar ^ d * Δ ^ (1 + (d : ℝ) / γ) ≤ Ival
    Proof (Lean source)
    theorem l1_lower_of_bias_bound {d : ℕ} {γ Ksup Δ Ival cstar h : ℝ} (hKsup : 0 < Ksup) (hΔ : 0 < Δ) (hcstar : 0 < cstar) (hheq : h = cstar * Δ ^ ((1 : ℝ) / γ)) (hbound : 3 * Δ / 4 ≤ Ksup * h⁻¹ ^ d * Ival) : (3 / (4 * Ksup)) * cstar ^ d * Δ ^ (1 + (d : ℝ) / γ) ≤ Ival := by have hqpos : (0 : ℝ) < Δ ^ ((d : ℝ) / γ) := Real.rpow_pos_of_pos hΔ _ have hcpos : 0 < cstar ^ d := pow_pos hcstar _ have hABpos : 0 < cstar ^ d * Δ ^ ((d : ℝ) / γ) := mul_pos hcpos hqpos -- `h ^ d = cstar ^ d * Δ ^ (d/γ)`. have hpow : h ^ d = cstar ^ d * Δ ^ ((d : ℝ) / γ) := by have h1 : (Δ ^ ((1 : ℝ) / γ)) ^ d = Δ ^ ((d : ℝ) / γ) := by rw [← Real.rpow_natCast (Δ ^ ((1 : ℝ) / γ)) d, ← Real.rpow_mul hΔ.le] congr 1 ring rw [hheq, mul_pow, h1] -- Rewrite the hypothesis with the explicit `h ^ d`. rw [inv_pow, hpow] at hbound -- Clear the inverse: `(3Δ/4)·(cstar^d·Δ^{d/γ}) ≤ Ksup·Ival`. have hmul : 3 * Δ / 4 * (cstar ^ d * Δ ^ ((d : ℝ) / γ)) ≤ Ksup * Ival := by have h2 := mul_le_mul_of_nonneg_right hbound hABpos.le have e : Ksup * (cstar ^ d * Δ ^ ((d : ℝ) / γ))⁻¹ * Ival * (cstar ^ d * Δ ^ ((d : ℝ) / γ)) = Ksup * Ival := by field_simp rwa [e] at h2 -- `Δ ^ (1 + d/γ) = Δ · Δ ^ (d/γ)`. have hΔadd : Δ ^ (1 + (d : ℝ) / γ) = Δ * Δ ^ ((d : ℝ) / γ) := by rw [Real.rpow_add hΔ, Real.rpow_one] have goaleq : (3 / (4 * Ksup)) * cstar ^ d * (Δ * Δ ^ ((d : ℝ) / γ)) = (3 * Δ / 4 * (cstar ^ d * Δ ^ ((d : ℝ) / γ))) / Ksup := by field_simp rw [hΔadd, goaleq, div_le_iff₀ hKsup, mul_comm Ival Ksup] exact hmul
    Causalean.Stat.Nonparametric.l1_lower_of_bias_bound · Causalean/Stat/Nonparametric/Approximation/Holder/Interpolation_Part1.lean:35
  • smoothed_abs_le lemma — Change-of-variables control of the kernel-smoothed value. The absolute value of the kernel-smoothed value in u-coordinates is bounded by the scaled local L¹ mass: |∫_{[-1,1]^d} K(u) g(x0 + h•u) du| ≤ B^d · h⁻ᵈ · ∫_{supBall x0 r} |g|. Uses |K| ≤ B^d, the affine change of variables x = x0 + h•u, and that the image cube supBall x0 h ⊆ supBall x0 r when h ≤ r.
    d :
    ℕ
    γ M r :
    ℝ
    x0 :
    Fin d → ℝ
    S :
    Set (Fin d → ℝ)
    k :
    ℝ → ℝ
    B :
    ℝ
    hS :
    supBall x0 r ⊆ S
    hkbd :
    ∀ u : Fin d → ℝ, |prodKernel k d u| ≤ B ^ d
    g :
    (Fin d → ℝ) → ℝ
    hg :
    HolderBallStd g γ M S
    h :
    ℝ
    hh :
    0 < h
    hhr :
    h ≤ r
    |∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)|
    ≤ B ^ d * (h⁻¹) ^ d * ∫ x in supBall x0 r, |g x|
    Proof (Lean source)
    lemma smoothed_abs_le {d : ℕ} {γ M r : ℝ} {x0 : Fin d → ℝ} {S : Set (Fin d → ℝ)} {k : ℝ → ℝ} {B : ℝ} (hS : supBall x0 r ⊆ S) (hkbd : ∀ u : Fin d → ℝ, |prodKernel k d u| ≤ B ^ d) (g : (Fin d → ℝ) → ℝ) (hg : HolderBallStd g γ M S) (h : ℝ) (hh : 0 < h) (hhr : h ≤ r) : |∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)| ≤ B ^ d * (h⁻¹) ^ d * ∫ x in supBall x0 r, |g x| := by have hBd0 : 0 ≤ B ^ d := le_trans (abs_nonneg _) (hkbd 0) have hgS : ContinuousOn g S := hg.1.continuousOn -- The affine map `u ↦ x0 + h•u` sends the unit cube into `S`. have hmaps : Set.MapsTo (fun u => x0 + h • u) (supBall (0 : Fin d → ℝ) 1) S := by intro u hu apply hS intro i have huq : (x0 + h • u) i - x0 i = h * u i := by simp [Pi.add_apply, Pi.smul_apply] rw [huq, abs_mul, abs_of_pos hh] have hui : |u i| ≤ 1 := by simpa using hu i calc h * |u i| ≤ h * 1 := mul_le_mul_of_nonneg_left hui hh.le _ = h := mul_one h _ ≤ r := hhr have hgcomp : ContinuousOn (fun u => g (x0 + h • u)) (supBall (0 : Fin d → ℝ) 1) := hgS.comp (by fun_prop : Continuous (fun u : Fin d → ℝ => x0 + h • u)).continuousOn hmaps have hgcomp_int : IntegrableOn (fun u => |g (x0 + h • u)|) (supBall (0 : Fin d → ℝ) 1) := (hgcomp.abs).integrableOn_compact (isCompact_supBall 0 1) have hg_abs_int : IntegrableOn (fun x => |g x|) (supBall x0 r) := ((hgS.mono hS).abs).integrableOn_compact (isCompact_supBall x0 r) -- Two set identities for the affine change of variables. have hsmul_set : h • supBall (0 : Fin d → ℝ) 1 = supBall (0 : Fin d → ℝ) h := by ext x simp only [Set.mem_smul_set] constructor · rintro ⟨u, hu, rfl⟩ i simp only [Pi.smul_apply, smul_eq_mul, Pi.zero_apply, sub_zero, abs_mul, abs_of_pos hh] have hui : |u i| ≤ 1 := by simpa using hu i calc h * |u i| ≤ h * 1 := mul_le_mul_of_nonneg_left hui hh.le _ = h := mul_one h · intro hx refine ⟨h⁻¹ • x, ?_, smul_inv_smul₀ hh.ne' x⟩ intro i simp only [Pi.smul_apply, smul_eq_mul, Pi.zero_apply, sub_zero, abs_mul, abs_inv, abs_of_pos hh] have hxi : |x i| ≤ h := by simpa using hx i calc h⁻¹ * |x i| ≤ h⁻¹ * h := mul_le_mul_of_nonneg_left hxi (by positivity) _ = 1 := inv_mul_cancel₀ hh.ne' have hme : MeasurableEmbedding (fun w => x0 + w : (Fin d → ℝ) → (Fin d → ℝ)) := (Homeomorph.addLeft x0).measurableEmbedding have hmp : MeasurePreserving (fun w => x0 + w) (volume : Measure (Fin d → ℝ)) volume := measurePreserving_add_left volume x0 have himg : (fun w => x0 + w) '' supBall (0 : Fin d → ℝ) h = supBall x0 h := by ext y simp only [Set.mem_image] constructor · rintro ⟨w, hw, rfl⟩ i simp only [Pi.add_apply, add_sub_cancel_left] simpa using hw i · intro hy refine ⟨y - x0, ?_, by simp⟩ intro i simpa using hy i have htrans : ∫ y in supBall x0 h, |g y| = ∫ w in supBall (0 : Fin d → ℝ) h, |g (x0 + w)| := by have := hmp.setIntegral_image_emb hme (fun y => |g y|) (supBall (0 : Fin d → ℝ) h) rwa [himg] at this -- Change of variables `x = x0 + h•u` then restrict the cube to the ball of radius `r`. have key : ∫ u in supBall (0 : Fin d → ℝ) 1, |g (x0 + h • u)| ≤ (h ^ d)⁻¹ * ∫ x in supBall x0 r, |g x| := by have cov : ∫ u in supBall (0 : Fin d → ℝ) 1, |g (x0 + h • u)| = (h ^ d)⁻¹ * ∫ y in supBall x0 h, |g y| := by rw [Measure.setIntegral_comp_smul_of_pos (μ := volume) (fun w => |g (x0 + w)|) (supBall (0 : Fin d → ℝ) 1) hh, hsmul_set, Module.finrank_fin_fun, smul_eq_mul, ← htrans] rw [cov] apply mul_le_mul_of_nonneg_left _ (by positivity) have hsub : supBall x0 h ⊆ supBall x0 r := fun x hx i => le_trans (hx i) hhr exact setIntegral_mono_set hg_abs_int (ae_of_all _ (fun x => abs_nonneg _)) (ae_of_all _ (fun x hx => hsub hx)) calc |∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)| = ‖∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)‖ := (Real.norm_eq_abs _).symm _ ≤ ∫ u in supBall (0 : Fin d → ℝ) 1, ‖prodKernel k d u * g (x0 + h • u)‖ := norm_integral_le_integral_norm _ _ = ∫ u in supBall (0 : Fin d → ℝ) 1, |prodKernel k d u| * |g (x0 + h • u)| := by simp only [Real.norm_eq_abs, abs_mul] _ ≤ ∫ u in supBall (0 : Fin d → ℝ) 1, B ^ d * |g (x0 + h • u)| := integral_mono_of_nonneg (ae_of_all _ (fun u => mul_nonneg (abs_nonneg _) (abs_nonneg _))) (hgcomp_int.const_mul (B ^ d)) (ae_of_all _ (fun u => mul_le_mul_of_nonneg_right (hkbd u) (abs_nonneg _))) _ = B ^ d * ∫ u in supBall (0 : Fin d → ℝ) 1, |g (x0 + h • u)| := integral_const_mul _ _ _ ≤ B ^ d * ((h ^ d)⁻¹ * ∫ x in supBall x0 r, |g x|) := mul_le_mul_of_nonneg_left key hBd0 _ = B ^ d * (h⁻¹) ^ d * ∫ x in supBall x0 r, |g x| := by rw [inv_pow]; ring
  • prodKernel_mass_cube lemma — Kernel mass over the cube. ∫_{[-1,1]^d} K = 1.
    d :
    ℕ
    k :
    ℝ → ℝ
    hk_supp :
    ∀ u : ℝ
    if
    1 < |u|
    then
    k u = 0
    hk_mass :
    (∫ u in Icc (-1 : ℝ) 1, k u) = 1
    ∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u = 1
    Proof (Lean source)
    lemma prodKernel_mass_cube {d : ℕ} {k : ℝ → ℝ} (hk_supp : ∀ u : ℝ, 1 < |u| → k u = 0) (hk_mass : (∫ u in Icc (-1 : ℝ) 1, k u) = 1) : ∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u = 1 := by rw [MeasureTheory.setIntegral_eq_integral_of_forall_compl_eq_zero (fun u hu => prodKernel_eq_zero_of_not_mem hk_supp hu)] rw [prodKernel_integral, kernel_integral_full hk_supp hk_mass, one_pow]
  • prodKernel_continuous lemma — The tensor kernel is continuous when the 1-D kernel is.
    d :
    ℕ
    k :
    ℝ → ℝ
    hk :
    Proof (Lean source)
    @[fun_prop] lemma prodKernel_continuous {d : ℕ} {k : ℝ → ℝ} (hk : Continuous k) : Continuous (prodKernel k d) := by unfold prodKernel exact continuous_finset_prod _ (fun i _ => hk.comp (continuous_apply i))
    Causalean.Stat.Nonparametric.prodKernel_continuous · Causalean/Stat/Nonparametric/Approximation/Holder/Interpolation_Part1.lean:271
  • ae_lt_one_on_cube lemma — Almost every point of the closed unit cube lies in its interior (the boundary {∃ i, |uᵢ| = 1} is Lebesgue-null).
    d :
    ℕ
    ∀ᵐ u ∂(volume.restrict (supBall (0 : Fin d → ℝ) 1)), ∀ i, |u i| < 1
    Proof (Lean source)
    lemma ae_lt_one_on_cube {d : ℕ} : ∀ᵐ u ∂(volume.restrict (supBall (0 : Fin d → ℝ) 1)), ∀ i, |u i| < 1 := by rw [MeasureTheory.ae_restrict_iff' (measurableSet_supBall 0 1)] have hnull : ∀ i : Fin d, ∀ c : ℝ, volume {u : Fin d → ℝ | u i = c} = 0 := by intro i c have hsub : {u : Fin d → ℝ | u i = c} ⊆ Set.univ.pi (fun j => if j = i then ({c} : Set ℝ) else univ) := by intro u hu j _ by_cases hj : j = i · subst hj; simpa using hu · simp [hj] refine measure_mono_null hsub ?_ rw [MeasureTheory.volume_pi_pi] refine Finset.prod_eq_zero (Finset.mem_univ i) ?_ simp have hbadnull : volume {u : Fin d → ℝ | ∃ i, |u i| = 1} = 0 := by have hsub : {u : Fin d → ℝ | ∃ i, |u i| = 1} ⊆ ⋃ i : Fin d, ({u | u i = 1} ∪ {u | u i = -1}) := by intro u hu obtain ⟨i, hi⟩ := hu rw [Set.mem_iUnion] rcases (abs_eq (by norm_num : (0:ℝ) ≤ 1)).mp hi with h | h · exact ⟨i, inl h⟩ · exact ⟨i, inr h⟩ refine measure_mono_null hsub ?_ refine measure_iUnion_null (fun i => ?_) exact measure_union_null (hnull i 1) (hnull i (-1)) have hae_not : ∀ᵐ u ∂(volume : Measure (Fin d → ℝ)), ¬ ∃ i, |u i| = 1 := by rw [MeasureTheory.ae_iff]; simpa using hbadnull filter_upwards [hae_not] with u hu hmem i have h1 : |u i| ≤ 1 := by simpa using hmem i rcases lt_or_eq_of_le h1 with h | h · exact h · exact absurd ⟨i, h⟩ hu
  • integral_diagonal_taylor_term_cube lemma — The kernel kills each nonconstant diagonal Taylor term. For 1 ≤ j ≤ m, integrating the diagonal iterated derivative iteratedFDeriv ℝ j g x0 (fun _ => h•u) against the kernel over the cube gives 0: expand the diagonal multilinear map into monomials and apply the moment cancellation prodKernel_monomial_p_cube.
    d :
    ℕ
    k :
    ℝ → ℝ
    m :
    ℕ
    hk_cont :
    hk_supp :
    ∀ u : ℝ
    if
    1 < |u|
    then
    k u = 0
    hk_mom :
    ∀ j : ℕ
    if
    1 ≤ j
    and
    j ≤ m
    then
    (∫ u in Icc (-1 : ℝ) 1, u ^ j * k u) = 0
    g :
    (Fin d → ℝ) → ℝ
    x0 :
    Fin d → ℝ
    h :
    ℝ
    j :
    ℕ
    hj1 :
    1 ≤ j
    hjm :
    j ≤ m
    ∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * iteratedFDeriv ℝ j g x0 (fun _ => h • u)
    = 0
    Proof (Lean source)
    lemma integral_diagonal_taylor_term_cube {d : ℕ} {k : ℝ → ℝ} {m : ℕ} (hk_cont : Continuous k) (hk_supp : ∀ u : ℝ, 1 < |u| → k u = 0) (hk_mom : ∀ j : ℕ, 1 ≤ j → j ≤ m → (∫ u in Icc (-1 : ℝ) 1, u ^ j * k u) = 0) (g : (Fin d → ℝ) → ℝ) (x0 : Fin d → ℝ) (h : ℝ) {j : ℕ} (hj1 : 1 ≤ j) (hjm : j ≤ m) : ∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * iteratedFDeriv ℝ j g x0 (fun _ => h • u) = 0 := by classical set F := iteratedFDeriv ℝ j g x0 with hFdef have hKcont : Continuous (prodKernel k d) := by unfold prodKernel exact continuous_finset_prod _ (fun i _ => hk_cont.comp (continuous_apply i)) -- pointwise monomial expansion of `K(u) · F(fun _ => h•u)`. have hpt : ∀ u : Fin d → ℝ, prodKernel k d u * F (fun _ => h • u) = ∑ p : Fin j → Fin d, (F (fun l => (single (p l) 1 : Fin d → ℝ)) * h ^ j) * ((∏ l, u (p l)) * prodKernel k d u) := by intro u have h1 : F (fun _ : Fin j => h • u) = ∑ p : Fin j → Fin d, (∏ l, (h * u (p l))) * F (fun l => (single (p l) 1 : Fin d → ℝ)) := by have hexp : (fun _ : Fin j => h • u) = (fun _ : Fin j => ∑ i : Fin d, (h * u i) • (single i 1 : Fin d → ℝ)) := by funext l; exact smul_eq_sum_single h u rw [hexp, ContinuousMultilinearMap.map_sum] refine Finset.sum_congr rfl (fun p _ => ?_) rw [ContinuousMultilinearMap.map_smul_univ] simp only [smul_eq_mul] rw [h1, Finset.mul_sum] refine Finset.sum_congr rfl (fun p _ => ?_) rw [Finset.prod_mul_distrib, Finset.prod_const, Finset.card_univ, Fintype.card_fin] ring calc ∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * F (fun _ => h • u) = ∫ u in supBall (0 : Fin d → ℝ) 1, ∑ p : Fin j → Fin d, (F (fun l => (single (p l) 1 : Fin d → ℝ)) * h ^ j) * ((∏ l, u (p l)) * prodKernel k d u) := by simp_rw [hpt] _ = ∑ p : Fin j → Fin d, ∫ u in supBall (0 : Fin d → ℝ) 1, (F (fun l => (single (p l) 1 : Fin d → ℝ)) * h ^ j) * ((∏ l, u (p l)) * prodKernel k d u) := by refine MeasureTheory.integral_finset_sum _ (fun p _ => ?_) have hc : Continuous (fun u : Fin d → ℝ => (F (fun l => (single (p l) 1 : Fin d → ℝ)) * h ^ j) * ((∏ l, u (p l)) * prodKernel k d u)) := continuous_const.mul ((continuous_finset_prod _ (fun l _ => continuous_apply (p l))).mul hKcont) exact hc.continuousOn.integrableOn_compact (isCompact_supBall 0 1) _ = 0 := by refine Finset.sum_eq_zero (fun p _ => ?_) rw [MeasureTheory.integral_const_mul, prodKernel_monomial_p_cube hk_supp hk_mom p hj1 hjm, mul_zero]
    Causalean.Stat.Nonparametric.integral_diagonal_taylor_term_cube · Causalean/Stat/Nonparametric/Approximation/Holder/Interpolation_Part1.lean:324
Interpolation_Part2 1 core · 0 supporting This file combines the moment-cancelling kernel from Kernel.lean with the Taylor, kernel-moment, change-of-variables, and bandwidth-optimization lemmas from Interpolation_Part1.lean. ★ holder_point_l1_interpolation

Hölder pointwise-to-local-L¹ interpolation capstone

This file combines the moment-cancelling kernel from Kernel.lean with the Taylor, kernel-moment, change-of-variables, and bandwidth-optimization lemmas from Interpolation_Part1.lean. Its public result holder_point_l1_interpolation turns a pointwise value of a multivariate Hölder function into a lower bound for its local absolute integral over supBall x0 r.

theorem holder_point_l1_interpolation reviewed
Causalean.Stat.Nonparametric

Hölder pointwise ⟹ local L¹ mass interpolation. Fix a point x0 in d-dimensional Euclidean space. If the Hölder exponent γ is positive, the Hölder constant M is positive, the neighbourhood radius r is positive, and the sup-norm ball of radius r around x0 is contained in the domain S, then there is a constant c_H > 0, depending only on γ, d, M, r and uniform over the Hölder ball, such that every function g in the standard Hölder ball of exponent γ, constant M, and domain S satisfies c_H · |g(x0)|^{1 + d/γ} ≤ ∫_{supBall x0 r} |g|.

Formal statement
d :
ℕ
γ M r :
ℝ
x0 :
Fin d → ℝ
S :
Set (Fin d → ℝ)
hγ :
0 < γ
hM :
0 < M
hr :
0 < r
hS :
supBall x0 r ⊆ S
∃ cH : ℝ,
0 < cH
conclusion 1
g :
(Fin d → ℝ) → ℝ
HolderBallStd g γ M S
cH * |g x0| ^ (1 + (d : ℝ) / γ) ≤ ∫ x in supBall x0 r, |g x|
Proof (Lean source)
theorem holder_point_l1_interpolation {d : ℕ} {γ M r : ℝ} {x0 : Fin d → ℝ} {S : Set (Fin d → ℝ)} (hγ : 0 < γ) (hM : 0 < M) (hr : 0 < r) (hS : supBall x0 r ⊆ S) : ∃ cH : ℝ, 0 < cH ∧ ∀ g : (Fin d → ℝ) → ℝ, HolderBallStd g γ M S → cH * |g x0| ^ (1 + (d : ℝ) / γ) ≤ ∫ x in supBall x0 r, |g x| := by classical -- Construct the moment-cancelling 1-D kernel and tensorize it as `K = prodKernel k d`. obtain ⟨k, hk_cont, hk_supp, hk_mass, hk_mom⟩ := exists_moment_cancelling_kernel_1d (⌈γ⌉₊ - 1) -- `k` is bounded (continuous with support in `[-1,1]`). have hcs : HasCompactSupport k := by apply HasCompactSupport.intro (isCompact_Icc (a := (-1 : ℝ)) (b := 1)) intro x hx apply hk_supp rw [Set.mem_Icc, not_and_or] at hx rcases hx with hx | hx · rw [not_le] at hx; rw [lt_abs]; right; linarith · rw [not_le] at hx; rw [lt_abs]; left; linarith obtain ⟨C0, hC0⟩ := hk_cont.bounded_above_of_compact_support hcs set B := max C0 0 with hBdef have hB : ∀ u, |k u| ≤ B := fun u => le_trans (by simpa [Real.norm_eq_abs] using hC0 u) (le_max_left _ _) have hB0 : 0 ≤ B := le_max_right _ _ -- `B > 0`: else `k ≡ 0`, contradicting unit mass. have hBpos : 0 < B := by rcases hB0.lt_or_eq with h | h · exact h · exfalso have hk0 : ∀ u, k u = 0 := by intro u have hle : |k u| ≤ 0 := by rw [h]; exact hB u exact abs_eq_zero.mp (le_antisymm hle (abs_nonneg _)) rw [MeasureTheory.setIntegral_congr_fun measurableSet_Icc (fun u _ => hk0 u)] at hk_mass simp at hk_mass have hBd : 0 < B ^ d := pow_pos hBpos d -- Obtain the uniform bias constant `C`. obtain ⟨C, hC0nn, hCbias⟩ := holder_taylor_bias hγ hM hS hk_cont hk_supp hk_mass hk_mom hB hB0 -- Choose the bandwidth constant `cstar`. have hMrpow_pos : 0 < M ^ ((1 : ℝ) / γ) := Real.rpow_pos_of_pos hM _ have hC1 : (0 : ℝ) < C + 1 := by positivity have hden_pos : (0 : ℝ) < 4 * (C + 1) * M := by positivity have hb_pos : 0 < (1 / (4 * (C + 1) * M)) ^ ((1 : ℝ) / γ) := Real.rpow_pos_of_pos (by positivity) _ set cstar := min (r / M ^ ((1 : ℝ) / γ)) ((1 / (4 * (C + 1) * M)) ^ ((1 : ℝ) / γ)) with hcstar_def have hcstar_pos : 0 < cstar := lt_min (div_pos hr hMrpow_pos) hb_pos refine ⟨(3 / (4 * B ^ d)) * cstar ^ d, ?_, ?_⟩ · exact mul_pos (div_pos (by norm_num) (mul_pos (by norm_num) hBd)) (pow_pos hcstar_pos d) · intro g hg set Δ := |g x0| with hΔdef have hΔnn : 0 ≤ Δ := by rw [hΔdef]; exact abs_nonneg _ rcases hΔnn.lt_or_eq with hΔpos | hΔ0 swap · -- `Δ = 0`: RHS ≥ 0. rw [← hΔ0, Real.zero_rpow (by positivity : (1 : ℝ) + (d : ℝ) / γ ≠ 0), mul_zero] exact MeasureTheory.setIntegral_nonneg (measurableSet_supBall x0 r) (fun x _ => abs_nonneg _) · -- `Δ > 0`. have hx0S : x0 ∈ S := hS (mem_supBall_self x0 hr.le) have hΔM : Δ ≤ M := by have h0 := hg.2.1 0 (zero_le _) x0 hx0S rw [norm_iteratedFDeriv_zero, Real.norm_eq_abs] at h0 rw [hΔdef]; exact h0 set h := cstar * Δ ^ ((1 : ℝ) / γ) with hh_def have hh_pos : 0 < h := mul_pos hcstar_pos (Real.rpow_pos_of_pos hΔpos _) -- `h ≤ r`. have hh_le_r : h ≤ r := by rw [hh_def] have hΔle : Δ ^ ((1 : ℝ) / γ) ≤ M ^ ((1 : ℝ) / γ) := Real.rpow_le_rpow hΔnn hΔM (one_div_nonneg.mpr hγ.le) have hne := hMrpow_pos.ne' calc cstar * Δ ^ ((1 : ℝ) / γ) ≤ cstar * M ^ ((1 : ℝ) / γ) := mul_le_mul_of_nonneg_left hΔle hcstar_pos.le _ ≤ (r / M ^ ((1 : ℝ) / γ)) * M ^ ((1 : ℝ) / γ) := mul_le_mul_of_nonneg_right (min_le_left _ _) hMrpow_pos.le _ = r := by field_simp -- Remainder `C·M·hᵞ ≤ Δ/4`. have hpow : (Δ ^ ((1 : ℝ) / γ)) ^ γ = Δ := by rw [← Real.rpow_mul hΔnn, one_div_mul_cancel hγ.ne', Real.rpow_one] have hhg : h ^ γ = cstar ^ γ * Δ := by rw [hh_def, Real.mul_rpow hcstar_pos.le (Real.rpow_nonneg hΔnn _), hpow] have hcstar_g : cstar ^ γ ≤ 1 / (4 * (C + 1) * M) := by have h2 : cstar ^ γ ≤ ((1 / (4 * (C + 1) * M)) ^ ((1 : ℝ) / γ)) ^ γ := Real.rpow_le_rpow hcstar_pos.le (min_le_right _ _) hγ.le rwa [← Real.rpow_mul (by positivity), one_div_mul_cancel hγ.ne', Real.rpow_one] at h2 have hrem : C * M * h ^ γ ≤ Δ / 4 := by have hge : C * M * cstar ^ γ ≤ C * M * (1 / (4 * (C + 1) * M)) := mul_le_mul_of_nonneg_left hcstar_g (by positivity) have heq : C * M * (1 / (4 * (C + 1) * M)) = C / (4 * (C + 1)) := by field_simp rw [heq] at hge have hle14 : C / (4 * (C + 1)) ≤ 1 / 4 := by rw [div_le_iff₀ (by positivity : (0:ℝ) < 4 * (C + 1))]; nlinarith [hC0nn] have hCMc : C * M * cstar ^ γ ≤ 1 / 4 := le_trans hge hle14 rw [hhg] calc C * M * (cstar ^ γ * Δ) = (C * M * cstar ^ γ) * Δ := by ring _ ≤ (1 / 4) * Δ := mul_le_mul_of_nonneg_right hCMc hΔnn _ = Δ / 4 := by ring -- Bias and change-of-variables combine into the `l1` hypothesis. have hbias := hCbias g hg h hh_pos hh_le_r have hbias' : |g x0 - ∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)| ≤ Δ / 4 := le_trans hbias hrem have hVlow : 3 * Δ / 4 ≤ |∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)| := by have h1 := abs_sub_abs_le_abs_sub (g x0) (∫ u in supBall (0 : Fin d → ℝ) 1, prodKernel k d u * g (x0 + h • u)) rw [← hΔdef] at h1 linarith [le_trans h1 hbias'] have hsm := smoothed_abs_le hS (prodKernel_abs_le hB) g hg h hh_pos hh_le_r have hbound : 3 * Δ / 4 ≤ B ^ d * h⁻¹ ^ d * ∫ x in supBall x0 r, |g x| := le_trans hVlow hsm have hfin := l1_lower_of_bias_bound hBd hΔpos hcstar_pos hh_def hbound rw [hΔdef] exact hfin
Causalean.Stat.Nonparametric.holder_point_l1_interpolation · Causalean/Stat/Nonparametric/Approximation/Holder/Interpolation_Part2.lean:196 · uses HolderBallStd , supBall
Kernel 2 core · 4 supporting This file constructs a bounded, compactly supported one-dimensional kernel with unit mass and vanishing moments through any prescribed finite order. ★ exists_moment_cancelling_kernel_1d

Moment-cancelling kernels

This file constructs a bounded, compactly supported one-dimensional kernel with unit mass and vanishing moments through any prescribed finite order. It also records the mass, moment, and uniform-bound identities for tensorizing that kernel across coordinates.

* exists_moment_cancelling_kernel_1d — the 1-D building block: a continuous, [-1,1]-supported kernel k with ∫ k = 1 and ∫ uʲ k(u) du = 0 for 1 ≤ j ≤ m. Obtained by the standard Vandermonde/Gram moment solve: take a fixed positive continuous weight vanishing at ±1 and multiply by a degree-m polynomial whose coefficients solve the nonsingular moment (Gram) system. * prodKernel_abs_le — the tensorized kernel is bounded by B ^ d when k is bounded by B.

The general tensor-product integral and moment factorizations are proved here. Their support-restricted unit-cube forms are derived where needed in Interpolation_Part1.lean.

def hpkPoly reviewed
Causalean.Stat.Nonparametric

Coefficient-vector polynomial u ↦ ∑ᵢ cᵢ uⁱ of degree ≤ m, used in the Vandermonde/Gram moment solve for exists_moment_cancelling_kernel_1d.

Definition (Lean source)
m :
ℕ
c :
Fin (m + 1) → ℝ
u :
ℝ
hpkPoly m c u :
ℝ
∑ i : Fin (m + 1), c i * u ^ (i : ℕ)
theorem exists_moment_cancelling_kernel_1d reviewed
Causalean.Stat.Nonparametric

For any prescribed finite order m, a compactly supported one-dimensional kernel can be chosen to have unit total mass while cancelling every polynomial moment through that order.

Formal statement
m :
ℕ
∃ k : ℝ → ℝ,
conclusion 1
u :
ℝ
1 < |u|
k u = 0
conclusion 2
(∫ u in Icc (-1 : ℝ) 1, k u) = 1
conclusion 3
j :
ℕ
1 ≤ j
j ≤ m
(∫ u in Icc (-1 : ℝ) 1, u ^ j * k u) = 0
Proof (Lean source)
theorem exists_moment_cancelling_kernel_1d (m : ℕ) : ∃ k : ℝ → ℝ, Continuous k ∧ (∀ u : ℝ, 1 < |u| → k u = 0) ∧ (∫ u in Icc (-1 : ℝ) 1, k u) = 1 ∧ (∀ j : ℕ, 1 ≤ j → j ≤ m → (∫ u in Icc (-1 : ℝ) 1, u ^ j * k u) = 0) := by -- Solve the Gram system `G c = e₀` by injectivity ⟹ surjectivity of a -- finite-dimensional endomorphism. have hsurj : Surjective ((hpkGram m).mulVecLin) := by rw [← LinearMap.injective_iff_surjective, ← LinearMap.ker_eq_bot, Matrix.ker_mulVecLin_eq_bot_iff] exact fun v hv => hpkInjective m v hv obtain ⟨c, hc⟩ := hsurj (single 0 1) rw [Matrix.mulVecLin_apply] at hc -- The moment integrals of `k = max(1-u²,0) · p(u)` over `[-1,1]` equal the Gram rows. have hmom : ∀ J : Fin (m + 1), (∫ u in Icc (-1 : ℝ) 1, u ^ (J : ℕ) * (max (1 - u ^ 2) 0 * hpkPoly m c u)) = (hpkGram m).mulVec c J := by intro J rw [MeasureTheory.setIntegral_congr_fun measurableSet_Icc (f := fun u => u ^ (J : ℕ) * (max (1 - u ^ 2) 0 * hpkPoly m c u)) (g := fun u => u ^ (J : ℕ) * ((1 - u ^ 2) * hpkPoly m c u)) (fun u hu => by dsimp only rw [max_eq_left (by nlinarith [hu.1, hu.2] : (0 : ℝ) ≤ 1 - u ^ 2)])] exact hpkExpand m c J refine ⟨fun u => max (1 - u ^ 2) 0 * hpkPoly m c u, ?_, ?_, ?_, ?_⟩ · exact ((continuous_const.sub (continuous_pow 2)).max continuous_const).mul (hpkPoly_continuous m c) · intro u hu have h1 : (1 : ℝ) < u ^ 2 := by nlinarith [hu, sq_abs u, abs_nonneg u] dsimp only rw [max_eq_right (by linarith : (1 : ℝ) - u ^ 2 ≤ 0), zero_mul] · have h0 := hmom 0 rw [hc, Pi.single_eq_same] at h0 simp only [Fin.val_zero, pow_zero, one_mul] at h0 simpa using h0 · intro j hj1 hjm have hJ : j < m + 1 := by omega have h0 := hmom ⟨j, hJ⟩ rw [hc, Pi.single_apply, if_neg (by intro h; rw [Fin.ext_iff] at h; simp at h; omega)] at h0 simpa using h0
Causalean.Stat.Nonparametric.exists_moment_cancelling_kernel_1d · Causalean/Stat/Nonparametric/Approximation/Holder/Kernel.lean:163
4 supporting declarations (lemmas, instances)
  • hpkPoly_continuous theorem — The coefficient polynomial of degree at most m built from a coefficient vector is a continuous function on the real line.
    m :
    ℕ
    c :
    Fin (m + 1) → ℝ
    Proof (Lean source)
    @[fun_prop] theorem hpkPoly_continuous (m : ℕ) (c : Fin (m + 1) → ℝ) : Continuous (hpkPoly m c) := by unfold hpkPoly exact continuous_finset_sum _ (fun i _ => continuous_const.mul (continuous_pow _))
    Causalean.Stat.Nonparametric.hpkPoly_continuous · Causalean/Stat/Nonparametric/Approximation/Holder/Kernel.lean:52
  • prodKernel_abs_le theorem — A product kernel is uniformly bounded by the coordinatewise bound raised to the dimension, whenever its one-dimensional factor has that bound.
    d :
    ℕ
    k :
    ℝ → ℝ
    B :
    ℝ
    hB :
    ∀ u, |k u| ≤ B
    u :
    Fin d → ℝ
    |prodKernel k d u| ≤ B ^ d
    Proof (Lean source)
    theorem prodKernel_abs_le {d : ℕ} {k : ℝ → ℝ} {B : ℝ} (hB : ∀ u, |k u| ≤ B) (u : Fin d → ℝ) : |prodKernel k d u| ≤ B ^ d := by unfold prodKernel rw [Finset.abs_prod] calc ∏ i : Fin d, |k (u i)| ≤ ∏ _i : Fin d, B := Finset.prod_le_prod (fun i _ => abs_nonneg _) (fun i _ => hB (u i)) _ = B ^ d := by rw [Finset.prod_const, Finset.card_univ, Fintype.card_fin]
    Causalean.Stat.Nonparametric.prodKernel_abs_le · Causalean/Stat/Nonparametric/Approximation/Holder/Kernel.lean:216
  • prodKernel_integral theorem — The total mass of a product kernel factorizes into the product of the one-dimensional masses, so a unit-mass factor yields a unit-mass multivariate kernel.
    d :
    ℕ
    k :
    ℝ → ℝ
    ∫ u, prodKernel k d u = (∫ t, k t) ^ d
    Proof (Lean source)
    theorem prodKernel_integral {d : ℕ} (k : ℝ → ℝ) : ∫ u, prodKernel k d u = (∫ t, k t) ^ d := by unfold prodKernel rw [MeasureTheory.integral_fintype_prod_volume_eq_prod (fun _ : Fin d => k)] rw [Finset.prod_const, Finset.card_univ, Fintype.card_fin]
    Causalean.Stat.Nonparametric.prodKernel_integral · Causalean/Stat/Nonparametric/Approximation/Holder/Kernel.lean:229
  • prodKernel_moment theorem — Each polynomial moment of a product kernel factorizes into the corresponding one-dimensional moments, allowing any cancelled coordinate moment to cancel the entire multivariate moment.
    d :
    ℕ
    k :
    ℝ → ℝ
    ν :
    Fin d → ℕ
    (∫ u, (∏ i, u i ^ ν i) * prodKernel k d u) = ∏ i, ∫ t, t ^ ν i * k t
    Proof (Lean source)
    theorem prodKernel_moment {d : ℕ} (k : ℝ → ℝ) (ν : Fin d → ℕ) : (∫ u, (∏ i, u i ^ ν i) * prodKernel k d u) = ∏ i, ∫ t, t ^ ν i * k t := by unfold prodKernel have hfac : (fun u : Fin d → ℝ => (∏ i, u i ^ ν i) * ∏ i, k (u i)) = fun u : Fin d → ℝ => ∏ i, (u i ^ ν i * k (u i)) := by funext u; rw [← Finset.prod_mul_distrib] rw [hfac] rw [MeasureTheory.integral_fintype_prod_volume_eq_prod (fun i : Fin d => fun t => t ^ ν i * k t)]
    Causalean.Stat.Nonparametric.prodKernel_moment · Causalean/Stat/Nonparametric/Approximation/Holder/Kernel.lean:237