Stat.Concentration.BoundedVariation
This module collects continuum maximal inequalities for finite independent families of continuous real paths with bounded variation.
Variation 7 core · 4 supporting This module fixes the compact time interval, the path norm and total variation, and a continuous cumulative-variation control used in continuum chaining. ★ exists_variation_control
Continuous paths of bounded variation
This module fixes the compact time interval, the path norm and total variation, and a continuous cumulative-variation control used in continuum chaining.
The time domain is the closed real interval from zero to one.
Definition (Lean source)
A path is a continuous real-valued function on the closed unit time interval.
Definition (Lean source)
The left endpoint of the time interval is the time 0.
Definition (Lean source)
The right endpoint of the time interval is the time 1.
Definition (Lean source)
The total variation of a continuous path f is its extended total variation over the unit interval, converted to a real number.
Definition (Lean source)
The size of a continuous path f is its supremum norm plus its total variation.
If a continuous path has bounded variation, then it has a continuous nondecreasing cumulative-variation control that starts at zero, ends at the path's total variation, and dominates every ordered increment of the path.
Formal statement
Proof (Lean source)
4 supporting declarations (lemmas, instances)
-
instMeasurableSpacePathinstance — The σ-algebra on continuous paths is the Borel σ-algebra of the uniform-norm topology.instancegiven byborel Path -
pathTV_nonnegtheorem — The real-valued total variation of every path is nonnegative.Proof (Lean source)
-
pathSize_nonnegtheorem — The supremum-plus-variation size of every path is nonnegative.Proof (Lean source)
theorem pathSize_nonneg (f : Path) : 0 ≤ pathSize f := by exact add_nonneg (norm_nonneg _) (pathTV_nonneg f) -
measurable_pathTVtheorem — Total variation is a Borel-measurable function of a continuous path under the uniform-norm topology.conclusionProof (Lean source)
@[fun_prop] theorem measurable_pathTV : Measurable pathTV := by have h : LowerSemicontinuous (fun f : Path => eVariationOn f univ) := by intro f apply eVariationOn.lowerSemicontinuous_aux intro x _ exact (continuous_eval_const x).tendsto f let : BorelSpace Path := ⟨rfl⟩ exact h.measurable.ennreal_toReal
SignedChaining 2 core · 0 supporting A scalar continuous control of squared coefficient increments bounds the signed process over the whole unit interval. ★ rademacherEnergy_le_scalar_control
Continuum chaining for finite signed path sums
A scalar continuous control of squared coefficient increments bounds the signed process over the whole unit interval. This isolates the continuum argument from the construction of variation controls for particular paths.
The Rademacher energy of a finite collection of continuous paths on the unit interval is the uniform average, over all sign patterns, of the squared supremum norm of the signed sum of the paths.
If a continuous scalar control u is nondecreasing, zero at time zero, and dominates the summed squared increments of the paths over every interval from s to t, then the Rademacher energy of the paths is at most 4096 times the total of the sum of their squared values at time zero and the terminal control value.
Formal statement
Proof (Lean source)
ChainingReconstruction 2 core · 6 supporting The compatible dyadic sections of a scalar increment control recover every point of a continuous signed path. ★ signed_path_le_dyadic_increment_series
Reconstructing a signed path from control quantiles
The compatible dyadic sections of a scalar increment control recover every point of a continuous signed path. This module separates the deterministic continuum argument from the later second-moment estimates.
The largest absolute signed increment at dyadic level k: given a family of n paths, a family of dyadic time grids, the level-k grid having 2^k + 1 points, a level k, and a sign pattern σ on the n paths, it is the maximum, over the 2^(k+1) adjacent pairs of points of the level-(k+1) grid, of the absolute value of the σ-signed sum of the path increments across that pair.
Definition (Lean source)
Suppose the control u is nondecreasing, zero at time zero, and dominates the summed squared path increments over every interval, and the dyadic grids place their i-th level-k point at control value i/2^k times the terminal value and assign the same time to equal dyadic fractions at different levels. If the maximal signed increments over the levels are summable, then the absolute σ-signed path sum at any time s is at most the absolute σ-signed sum at time zero plus the total of the maximal signed increments over all levels.
Formal statement
Proof (Lean source)
6 supporting declarations (lemmas, instances)
-
signedDyadicIncrementMax_summabletheorem — If a scalar control u is nondecreasing and zero at time zero, the squared increments of the n paths over every interval from s to t sum to at most u(t) − u(s), and the dyadic grids are monotone at every level and place their i-th level-k point where the control equals i/2^k times its terminal value, then for every sign pattern the maximal signed increments at successive levels form a summable sequence.hypothesesn :ℕu :hzero :u timeZero = 0henergy :∀ s t : Timeifs ≤ tthen(∑ j, (w j t - w j s) ^ 2) ≤ u t - u shgridmono :∀ k, Monotone (grid k)hgridval :∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOneconclusionSummable (fun k => signedDyadicIncrementMax w grid k σ)Proof (Lean source)
theorem signedDyadicIncrementMax_summable {n : ℕ} (w : Fin n → Path) (u : Path) (hmono : Monotone (u : Time → ℝ)) (hzero : u timeZero = 0) (henergy : ∀ s t : Time, s ≤ t → (∑ j, (w j t - w j s) ^ 2) ≤ u t - u s) (grid : ∀ k : ℕ, Fin (2 ^ k + 1) → Time) (hgridmono : ∀ k, Monotone (grid k)) (hgridval : ∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne) (σ : Fin n → Bool) : Summable (fun k => signedDyadicIncrementMax w grid k σ) := by /- Cauchy--Schwarz bounds every signed edge by the square root of `n` times the square root of its coefficient energy. Every edge at level `k + 1` has control mass `u(1) / 2 ^ (k + 1)`. Compare the maxima with a geometric series of ratio `1 / sqrt 2`, including the case `u(1) = 0`. -/ classical have hU : 0 ≤ u timeOne := by simpa only [hzero] using hmono (show timeZero ≤ timeOne by change (0 : ℝ) ≤ 1; norm_num) let r : ℝ := sqrt (1 / 2 : ℝ) have hr0 : 0 ≤ r := Real.sqrt_nonneg _ have hr1 : r < 1 := by dsimp [r] nlinarith [Real.sq_sqrt (show (0 : ℝ) ≤ 1 / 2 by norm_num), Real.sqrt_nonneg (1 / 2 : ℝ)] have hgeom : Summable (fun k : ℕ => (n : ℝ) * sqrt (u timeOne) * r ^ (k + 1)) := ((summable_geometric_of_lt_one hr0 hr1).comp_injective Nat.succ_injective).mul_left _ have hsqrt_pow (m : ℕ) : sqrt ((1 / 2 : ℝ) ^ m) = r ^ m := by induction m with | zero => simp [r] | succ m ih => rw [pow_succ, Real.sqrt_mul (by norm_num), ih, pow_succ] apply Summable.of_nonneg_of_le (fun k => by unfold signedDyadicIncrementMax have h := Finset.le_sup' (fun i : Fin (2 ^ (k + 1)) => |∑ j, (if σ j then (1 : ℝ) else -1) * (w j (grid (k + 1) i.succ) - w j (grid (k + 1) i.castSucc))|) (by simp : (0 : Fin (2 ^ (k + 1))) ∈ univ) exact (abs_nonneg _).trans h) ?_ hgeom intro k apply Finset.sup'_le intro i hi let a : Fin n → ℝ := fun j => w j (grid (k + 1) i.succ) - w j (grid (k + 1) i.castSucc) have hs : grid (k + 1) i.castSucc ≤ grid (k + 1) i.succ := hgridmono _ (by exact_mod_cast le_succ i.val) have henergy' : (∑ j, a j ^ 2) ≤ u timeOne / (2 : ℝ) ^ (k + 1) := by have h := henergy _ _ hs rw [hgridval, hgridval] at h dsimp [a] convert h using 1 <;> simp only [Fin.val_succ, Fin.val_castSucc, Nat.cast_add, Nat.cast_one] <;> ring have hcoord (j : Fin n) : |a j| ≤ sqrt (u timeOne / (2 : ℝ) ^ (k + 1)) := by rw [Real.le_sqrt (abs_nonneg _) (div_nonneg hU (by positivity)), sq_abs] calc a j ^ 2 ≤ ∑ l, a l ^ 2 := Finset.single_le_sum (fun l hl => sq_nonneg _) (by simp) _ ≤ _ := henergy' calc |∑ j, (if σ j then (1 : ℝ) else -1) * a j| ≤ ∑ j, |(if σ j then (1 : ℝ) else -1) * a j| := Finset.abs_sum_le_sum_abs _ _ _ = ∑ j, |a j| := by apply Finset.sum_congr rfl intro j hj by_cases hjσ : σ j = true <;> simp [hjσ] _ ≤ ∑ _j : Fin n, sqrt (u timeOne / (2 : ℝ) ^ (k + 1)) := Finset.sum_le_sum (fun j _ => hcoord j) _ = (n : ℝ) * sqrt (u timeOne) * r ^ (k + 1) := by simp only [Finset.sum_const, Finset.card_fin, nsmul_eq_mul] dsimp [r] rw [div_eq_mul_inv, ← inv_pow, Real.sqrt_mul hU] norm_num only [show (2 : ℝ)⁻¹ = 1 / 2 by norm_num] rw [hsqrt_pow] ring -
signed_dyadic_chain_step_letheorem — Let the dyadic grids be compatible across levels: grid points at different levels with the same dyadic fraction are the same time. If the level-(k+1) index j is a child (2i or 2i + 1) of the level-k index i, then the absolute signed path sum at the child grid point is at most the absolute signed sum at the parent grid point plus the maximal signed increment at level k.hypothesesn :ℕhgridcompat :∀ k i l jif((i.val : ℝ) / (2 ^ k : ℝ)) = ((j.val : ℝ) / (2 ^ l : ℝ))thengrid k i = grid l jk :ℕi :Fin (2 ^ k + 1)j :Fin (2 ^ (k + 1) + 1)hparent :j.val = 2 * i.val ∨ j.val = 2 * i.val + 1conclusion|∑ a, (if σ a then (1 : ℝ) else -1) * w a (grid (k + 1) j)|≤ |∑ a, (if σ a then (1 : ℝ) else -1) * w a (grid k i)|+ signedDyadicIncrementMax w grid k σProof (Lean source)
theorem signed_dyadic_chain_step_le {n : ℕ} (w : Fin n → Path) (grid : ∀ k : ℕ, Fin (2 ^ k + 1) → Time) (hgridcompat : ∀ k i l j, ((i.val : ℝ) / (2 ^ k : ℝ)) = ((j.val : ℝ) / (2 ^ l : ℝ)) → grid k i = grid l j) (σ : Fin n → Bool) (k : ℕ) (i : Fin (2 ^ k + 1)) (j : Fin (2 ^ (k + 1) + 1)) (hparent : j.val = 2 * i.val ∨ j.val = 2 * i.val + 1) : |∑ a, (if σ a then (1 : ℝ) else -1) * w a (grid (k + 1) j)| ≤ |∑ a, (if σ a then (1 : ℝ) else -1) * w a (grid k i)| + signedDyadicIncrementMax w grid k σ := by /- In the even case `hgridcompat` identifies the two grid points. In the odd case construct the edge indexed by `2 * i.val` in `Fin (2^(k+1))`. Its `castSucc` is the even child and its `succ` is `j`; apply the triangle inequality and `Finset.le_sup'` to that edge. -/ rcases hparent with hp | hp · have hcompat : grid k i = grid (k + 1) j := by apply hgridcompat simp only [hp] push_cast rw [pow_succ] field_simp rw [← hcompat] exact le_add_of_nonneg_right (by unfold signedDyadicIncrementMax exact (abs_nonneg _).trans (Finset.le_sup' (fun e : Fin (2 ^ (k + 1)) => |∑ a, (if σ a then (1 : ℝ) else -1) * (w a (grid (k + 1) e.succ) - w a (grid (k + 1) e.castSucc))|) (Finset.mem_univ (0 : Fin (2 ^ (k + 1)))))) · have heven : 2 * i.val < 2 ^ (k + 1) := by have hj := j.isLt omega let e : Fin (2 ^ (k + 1)) := ⟨2 * i.val, heven⟩ have hcompat : grid k i = grid (k + 1) e.castSucc := by apply hgridcompat simp only [Fin.val_castSucc] change (i.val : ℝ) / (2 ^ k : ℝ) = (2 * i.val : ℕ) / (2 ^ (k + 1) : ℝ) push_cast rw [pow_succ] field_simp have hj : j = e.succ := Fin.ext hp rw [hj, hcompat] have hsplit : (∑ a, (if σ a then (1 : ℝ) else -1) * w a (grid (k + 1) e.succ)) = (∑ a, (if σ a then (1 : ℝ) else -1) * w a (grid (k + 1) e.castSucc)) + (∑ a, (if σ a then (1 : ℝ) else -1) * (w a (grid (k + 1) e.succ) - w a (grid (k + 1) e.castSucc))) := by rw [← Finset.sum_add_distrib] apply Finset.sum_congr rfl intro a _ ring rw [hsplit] have hedge : |∑ a, (if σ a then (1 : ℝ) else -1) * (w a (grid (k + 1) e.succ) - w a (grid (k + 1) e.castSucc))| ≤ signedDyadicIncrementMax w grid k σ := by unfold signedDyadicIncrementMax exact Finset.le_sup' (fun e : Fin (2 ^ (k + 1)) => |∑ a, (if σ a then (1 : ℝ) else -1) * (w a (grid (k + 1) e.succ) - w a (grid (k + 1) e.castSucc))|) (Finset.mem_univ e) exact (abs_add_le _ _).trans (add_le_add_right hedge _) -
signed_dyadic_chain_finite_letheorem — Suppose the control u is zero at time zero and dominates the summed squared path increments over every interval, and the dyadic grids place their i-th level-k point at control value i/2^k times the terminal value and are compatible across levels. If a chain of indices, one per level, starts at index 0 and moves from each level to a child at the next, then at every level m the absolute signed path sum at the chain's grid point is at most the absolute signed sum at time zero plus the maximal signed increments of levels 0 through m − 1.hypothesesn :ℕu :hzero :u timeZero = 0henergy :∀ s t : Timeifs ≤ tthen(∑ j, (w j t - w j s) ^ 2) ≤ u t - u shgridval :∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOnehgridcompat :∀ k i l jif((i.val : ℝ) / (2 ^ k : ℝ)) = ((j.val : ℝ) / (2 ^ l : ℝ))thengrid k i = grid l ji :∀ k : ℕ, Fin (2 ^ k + 1)hi0 :(i 0).val = 0hiparent :∀ k, (i (k + 1)).val = 2 * (i k).val ∨ (i (k + 1)).val = 2 * (i k).val + 1m :ℕconclusion|∑ j, (if σ j then (1 : ℝ) else -1) * w j (grid m (i m))|≤ |∑ j, (if σ j then (1 : ℝ) else -1) * w j timeZero|+ ∑ k ∈ range m, signedDyadicIncrementMax w grid k σProof (Lean source)
theorem signed_dyadic_chain_finite_le {n : ℕ} (w : Fin n → Path) (u : Path) (hzero : u timeZero = 0) (henergy : ∀ s t : Time, s ≤ t → (∑ j, (w j t - w j s) ^ 2) ≤ u t - u s) (grid : ∀ k : ℕ, Fin (2 ^ k + 1) → Time) (hgridval : ∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne) (hgridcompat : ∀ k i l j, ((i.val : ℝ) / (2 ^ k : ℝ)) = ((j.val : ℝ) / (2 ^ l : ℝ)) → grid k i = grid l j) (i : ∀ k : ℕ, Fin (2 ^ k + 1)) (hi0 : (i 0).val = 0) (hiparent : ∀ k, (i (k + 1)).val = 2 * (i k).val ∨ (i (k + 1)).val = 2 * (i k).val + 1) (σ : Fin n → Bool) (m : ℕ) : |∑ j, (if σ j then (1 : ℝ) else -1) * w j (grid m (i m))| ≤ |∑ j, (if σ j then (1 : ℝ) else -1) * w j timeZero| + ∑ k ∈ range m, signedDyadicIncrementMax w grid k σ := by /- Induct on m. At level zero, `hgridval` and `hi0` put the grid point on the zero-control plateau, so `controlled_path_eq_of_same_control` identifies its coefficient values with those at timeZero. For the step, `hiparent` and `hgridcompat` identify the parent with the even child; the odd child differs by exactly one adjacent grid increment. -/ have hbase : ∀ j : Fin n, w j (grid 0 (i 0)) = w j timeZero := by have hu : u timeZero = u (grid 0 (i 0)) := by rw [hzero, hgridval] simp [hi0] intro j exact (controlled_path_eq_of_same_control w u henergy timeZero (grid 0 (i 0)) hu j).symm induction m with | zero => have heq : (∑ j, (if σ j then (1 : ℝ) else -1) * w j (grid 0 (i 0))) = ∑ j, (if σ j then (1 : ℝ) else -1) * w j timeZero := by apply Finset.sum_congr rfl intro j _ rw [hbase j] simpa only [Finset.sum_range_zero, add_zero] using le_of_eq (congrArg abs heq) | succ m ih => calc |∑ j, (if σ j then (1 : ℝ) else -1) * w j (grid (m + 1) (i (m + 1)))| ≤ |∑ j, (if σ j then (1 : ℝ) else -1) * w j (grid m (i m))| + signedDyadicIncrementMax w grid m σ := signed_dyadic_chain_step_le w grid hgridcompat σ m (i m) (i (m + 1)) (hiparent m) _ ≤ (|∑ j, (if σ j then (1 : ℝ) else -1) * w j timeZero| + ∑ k ∈ range m, signedDyadicIncrementMax w grid k σ) + signedDyadicIncrementMax w grid m σ := add_le_add ih (le_refl _) _ = _ := by rw [Finset.sum_range_succ]; ring -
controlled_grid_coordinate_tendstotheorem — Suppose the control u is nondecreasing, zero at time zero, and dominates the summed squared path increments over every interval, and the dyadic grids place their i-th level-k point at control value i/2^k times the terminal value. If the control at time s equals x times its terminal value and a chain of indices, one per level, brackets x between i_k/2^k and (i_k + 1)/2^k at every level k, then each path coordinate evaluated along the chain's grid points converges to its value at s.hypothesesn :ℕu :hzero :u timeZero = 0henergy :∀ s t : Timeifs ≤ tthen(∑ a, (w a t - w a s) ^ 2) ≤ u t - u shgridval :∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOnei :∀ k : ℕ, Fin (2 ^ k + 1)s :x :ℝhx :u s = x * u timeOnehiapprox :∀ k, (i k).val / (2 ^ k : ℝ) ≤ x ∧ x ≤ ((i k).val + 1) / (2 ^ k : ℝ)j :Fin nProof (Lean source)
theorem controlled_grid_coordinate_tendsto {n : ℕ} (w : Fin n → Path) (u : Path) (hmono : Monotone (u : Time → ℝ)) (hzero : u timeZero = 0) (henergy : ∀ s t : Time, s ≤ t → (∑ a, (w a t - w a s) ^ 2) ≤ u t - u s) (grid : ∀ k : ℕ, Fin (2 ^ k + 1) → Time) (hgridval : ∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne) (i : ∀ k : ℕ, Fin (2 ^ k + 1)) (s : Time) (x : ℝ) (hx : u s = x * u timeOne) (hiapprox : ∀ k, (i k).val / (2 ^ k : ℝ) ≤ x ∧ x ≤ ((i k).val + 1) / (2 ^ k : ℝ)) (j : Fin n) : Tendsto (fun k => w j (grid k (i k))) atTop (nhds (w j s)) := by /- `controlled_path_error_le` bounds the squared coordinate difference by the absolute control gap. Using `hgridval`, `hx`, and `hiapprox`, that gap is at most `u timeOne / 2^k`, which tends to zero. Prove convergence of the absolute difference, then of the coordinate itself. -/ have hU : 0 ≤ u timeOne := by simpa only [hzero] using hmono (show timeZero ≤ timeOne by change (0 : ℝ) ≤ 1; norm_num) have hgap (k : ℕ) : |u (grid k (i k)) - u s| ≤ u timeOne / (2 : ℝ) ^ k := by rcases hiapprox k with ⟨hl, hu⟩ have hpow : (0 : ℝ) < (2 : ℝ) ^ k := by positivity have hq : 0 ≤ x - (i k).val / (2 ^ k : ℝ) ∧ x - (i k).val / (2 ^ k : ℝ) ≤ 1 / (2 ^ k : ℝ) := by constructor · linarith · have heq : (((i k).val : ℝ) + 1) / (2 ^ k : ℝ) = (i k).val / (2 ^ k : ℝ) + 1 / (2 ^ k : ℝ) := by ring rw [heq] at hu linarith calc _ = (x - (i k).val / (2 ^ k : ℝ)) * u timeOne := by rw [hgridval, hx, ← sub_mul, abs_mul, abs_of_nonpos (by linarith [hq.1]), abs_of_nonneg hU] ring _ ≤ (1 / (2 ^ k : ℝ)) * u timeOne := mul_le_mul_of_nonneg_right hq.2 hU _ = u timeOne / (2 : ℝ) ^ k := by ring have hgeom : Tendsto (fun k : ℕ => u timeOne / (2 : ℝ) ^ k) atTop (nhds 0) := by have h := tendsto_pow_atTop_nhds_zero_of_lt_one (show (0 : ℝ) ≤ 1 / 2 by norm_num) (show (1 : ℝ) / 2 < 1 by norm_num) have ht := h.const_mul (u timeOne) simpa [div_eq_mul_inv, ← inv_pow] using ht have hsq (k : ℕ) : (w j (grid k (i k)) - w j s) ^ 2 ≤ u timeOne / (2 : ℝ) ^ k := by calc _ ≤ ∑ a, (w a (grid k (i k)) - w a s) ^ 2 := Finset.single_le_sum (fun a _ => sq_nonneg _) (Finset.mem_univ j) _ ≤ |u (grid k (i k)) - u s| := controlled_path_error_le w u henergy s (grid k (i k)) _ ≤ _ := hgap k have hsqtend : Tendsto (fun k => (w j (grid k (i k)) - w j s) ^ 2) atTop (nhds 0) := tendsto_of_tendsto_of_tendsto_of_le_of_le tendsto_const_nhds hgeom (fun k => sq_nonneg _) hsq have habs : Tendsto (fun k => |w j (grid k (i k)) - w j s|) atTop (nhds 0) := by simpa only [Function.comp_def, Real.sqrt_sq_eq_abs, Real.sqrt_zero] using (Real.continuous_sqrt.tendsto 0).comp hsqtend rw [tendsto_iff_norm_sub_tendsto_zero] simpa only [Real.norm_eq_abs] using habs -
signed_dyadic_chain_tendstotheorem — Suppose the control u is nondecreasing, zero at time zero, and dominates the summed squared path increments over every interval, and the dyadic grids place their i-th level-k point at control value i/2^k times the terminal value. If the control at time s equals x times its terminal value and a chain of indices, one per level, brackets x between i_k/2^k and (i_k + 1)/2^k at every level k, then the σ-signed path sums along the chain's grid points converge to the σ-signed sum at s.hypothesesn :ℕu :hzero :u timeZero = 0henergy :∀ s t : Timeifs ≤ tthen(∑ j, (w j t - w j s) ^ 2) ≤ u t - u shgridval :∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOnei :∀ k : ℕ, Fin (2 ^ k + 1)s :x :ℝhx :u s = x * u timeOnehiapprox :∀ k, (i k).val / (2 ^ k : ℝ) ≤ x ∧ x ≤ ((i k).val + 1) / (2 ^ k : ℝ)Proof (Lean source)
theorem signed_dyadic_chain_tendsto {n : ℕ} (w : Fin n → Path) (u : Path) (hmono : Monotone (u : Time → ℝ)) (hzero : u timeZero = 0) (henergy : ∀ s t : Time, s ≤ t → (∑ j, (w j t - w j s) ^ 2) ≤ u t - u s) (grid : ∀ k : ℕ, Fin (2 ^ k + 1) → Time) (hgridval : ∀ k i, u (grid k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne) (i : ∀ k : ℕ, Fin (2 ^ k + 1)) (s : Time) (x : ℝ) (hx : u s = x * u timeOne) (hiapprox : ∀ k, (i k).val / (2 ^ k : ℝ) ≤ x ∧ x ≤ ((i k).val + 1) / (2 ^ k : ℝ)) (σ : Fin n → Bool) : Tendsto (fun k => ∑ j, (if σ j then (1 : ℝ) else -1) * w j (grid k (i k))) atTop (nhds (∑ j, (if σ j then (1 : ℝ) else -1) * w j s)) := by /- The grid-control gap is at most `u(timeOne)/2^k`. Apply `controlled_path_error_le` to every coefficient, then finite-sum continuity and `2^k → ∞`. Equality of control values handles plateaus. -/ classical have hj (j : Fin n) : Tendsto (fun k => (if σ j then (1 : ℝ) else -1) * w j (grid k (i k))) atTop (nhds ((if σ j then (1 : ℝ) else -1) * w j s)) := (controlled_grid_coordinate_tendsto w u hmono hzero henergy grid hgridval i s x hx hiapprox j).const_mul _ simpa using (tendsto_finsetSum (Finset.univ : Finset (Fin n)) (fun j _ => hj j)) -
control_value_unit_fractiontheorem — If a control path is nondecreasing and zero at time zero, then its value at any time s equals x times its terminal value for some x between 0 and 1.hypothesesProof (Lean source)
theorem control_value_unit_fraction (u : Path) (hmono : Monotone (u : Time → ℝ)) (hzero : u timeZero = 0) (s : Time) : ∃ x : ℝ, 0 ≤ x ∧ x ≤ 1 ∧ u s = x * u timeOne := by have h0s : 0 ≤ u s := by have hts : timeZero ≤ s := by change (0 : ℝ) ≤ (s : ℝ) exact s.property.1 simpa only [hzero] using hmono hts have hs1 : u s ≤ u timeOne := hmono s.property.2 by_cases hU : u timeOne = 0 · refine ⟨0, by norm_num, by norm_num, ?_⟩ simp [hU, le_antisymm (by simpa [hU] using hs1) h0s] · have hUpos : 0 < u timeOne := lt_of_le_of_ne (h0s.trans hs1) (Ne.symm hU) refine ⟨u s / u timeOne, div_nonneg h0s hUpos.le, ?_, ?_⟩ · exact (div_le_iff₀ hUpos).2 (by simpa using hs1) · exact (div_mul_cancel₀ (u s) hU).symm
FiniteSignMax 2 core · 0 supporting A logarithmic finite-class bound follows from the sign exponential moment. ★ signMaxEnergy_le
Maximum of finitely many signed sums
A logarithmic finite-class bound follows from the sign exponential moment. This is an intermediate estimate for dyadic chaining, where class size grows geometrically and increment variance decays geometrically.
The sign-maximum energy of a nonempty finite collection of coefficient vectors in ℝ^n is the uniform average, over all 2^n sign patterns, of the largest squared signed sum among the vectors.
For m + 1 coefficient vectors in ℝ^n, the sign-average of the largest squared Rademacher sum is at most 32 (1 + log(m + 1)) times the largest squared Euclidean norm of the vectors.
Formal statement
Proof (Lean source)
ClippedPolynomial 3 core · 5 supporting A finite linear combination of deterministic continuous coefficient paths, with random scalar factorial monomials, yields a continuous path. ★ clippedFinitePath_sq_integral_le
Clipped finite factorial-polynomial paths
A finite linear combination of deterministic continuous coefficient paths, with random scalar factorial monomials, yields a continuous path. If the coefficients have bounded variation and the monomials have finite second moments, clipping preserves bounded variation and gives an integrable squared path size. Independence follows from disjoint measurable coordinate blocks.
A clipping radius and a scalar value x determine the value x clipped to the symmetric interval from minus the radius to the radius, that is, the smaller of the radius and the larger of minus the radius and x.
Finitely many coefficient paths c_a, random scalar coefficients X_a, a clipping radius, and a sample point ω determine the clipped continuous path sending each time t to the finite sum Σ_a X_a(ω)·c_a(t), clipped to the symmetric interval of that radius.
Definition (Lean source)
Under a probability measure, take finitely many coefficient paths c_a, random scalar coefficients X_a, and a clip radius with the radius nonnegative, every coefficient path of finite total variation, and the scalar coefficients measurable and square integrable. Then the squared size of the clipped path t ↦ clip(Σ_a X_a·c_a(t)) is integrable, and its expectation is at most (Σ_a size(c_a)²)·(Σ_a E[X_a²]), where the size of a path is its supremum norm plus its total variation.
Formal statement
Proof (Lean source)
5 supporting declarations (lemmas, instances)
-
continuous_clipped_finite_sumtheorem — A finite linear combination of continuous coefficient paths remains continuous after scalar clipping.hypothesesconclusionProof (Lean source)
theorem continuous_clipped_finite_sum {ι : Type*} [Fintype ι] (c : ι → Path) (x : ι → ℝ) (cap : ℝ) : Continuous (fun t : Time => scalarClip cap (∑ a, x a * c a t)) := by unfold scalarClip apply Continuous.min continuous_const apply Continuous.max continuous_const fun_prop -
clippedFinitePath_pathSize_letheorem — Clipping a finite sum of bounded-variation coefficient paths has path size bounded by the weighted sum of coefficient path sizes. The clip radius is assumed nonnegative.hypothesesι Ω :Type*Fintype ιc :ι → PathX :Ω → ι → ℝcap :ℝhcap :0 ≤ caphBV :∀ a, eVariationOn (c a) univ < ⊤ω :ΩconclusionProof (Lean source)
theorem clippedFinitePath_pathSize_le {ι Ω : Type*} [Fintype ι] (c : ι → Path) (X : Ω → ι → ℝ) (cap : ℝ) (hcap : 0 ≤ cap) (hBV : ∀ a, eVariationOn (c a) univ < ⊤) (ω : Ω) : pathSize (clippedFinitePath c X cap ω) ≤ ∑ a, |X ω a| * pathSize (c a) := by let y : Path := clippedFinitePath c X cap ω have hnorm : ‖y‖ ≤ ∑ a, |X ω a| * ‖c a‖ := by have hnonneg : 0 ≤ (∑ a, |X ω a| * ‖c a‖) := Finset.sum_nonneg (fun a _ => mul_nonneg (abs_nonneg _) (norm_nonneg _)) apply (ContinuousMap.norm_le y hnonneg).2 intro t have hclip0 : scalarClip cap 0 = 0 := by simp [scalarClip, hcap] have hpoint : ‖scalarClip cap (∑ a, X ω a * c a t)‖ ≤ ‖∑ a, X ω a * c a t‖ := by have h := (scalarClip_lipschitz cap).dist_le_mul (∑ a, X ω a * c a t) 0 simpa [hclip0, Real.norm_eq_abs] using h calc ‖y t‖ ≤ ‖∑ a, X ω a * c a t‖ := hpoint _ ≤ ∑ a, ‖X ω a * c a t‖ := norm_sum_le _ _ _ ≤ ∑ a, |X ω a| * ‖c a‖ := by apply Finset.sum_le_sum intro a _ rw [norm_mul, Real.norm_eq_abs] exact mul_le_mul_of_nonneg_left (ContinuousMap.norm_coe_le_norm (c a) t) (abs_nonneg _) have hfin : (∑ a, (‖X ω a‖₊ : ENNReal) * eVariationOn (c a) univ) < ⊤ := by exact ENNReal.sum_lt_top.mpr (fun a _ => ENNReal.mul_lt_top (by simp) (hBV a)) have htv : pathTV y ≤ ∑ a, |X ω a| * pathTV (c a) := by have h := ENNReal.toReal_mono (ne_of_lt hfin) (eVariationOn_clipped_weighted_sum_le c (X ω) cap) rw [ENNReal.toReal_sum (fun a _ => ne_of_lt (ENNReal.mul_lt_top (by simp) (hBV a)))] at h simpa [pathTV, y, clippedFinitePath, ENNReal.toReal_mul, Real.norm_eq_abs] using h dsimp [pathSize] simp only [Finset.sum_add_distrib, mul_add] linarith -
clippedFinitePath_bvtheorem — A finite sum of bounded-variation coefficient paths, after scalar clipping, still has finite total variation on the threshold interval.hypothesesι Ω :Type*Fintype ιc :ι → PathX :Ω → ι → ℝcap :ℝhBV :∀ a, eVariationOn (c a) univ < ⊤ω :ΩconclusionProof (Lean source)
theorem clippedFinitePath_bv {ι Ω : Type*} [Fintype ι] (c : ι → Path) (X : Ω → ι → ℝ) (cap : ℝ) (hBV : ∀ a, eVariationOn (c a) univ < ⊤) (ω : Ω) : eVariationOn (clippedFinitePath c X cap ω) univ < ⊤ := by apply lt_of_le_of_lt (eVariationOn_clipped_weighted_sum_le c (X ω) cap) exact ENNReal.sum_lt_top.mpr (fun a _ => ENNReal.mul_lt_top (by simp) (hBV a)) -
measurable_clippedFinitePaththeorem — Measurable scalar monomials produce a measurable random continuous path when their coefficient paths and clipping radius are deterministic.hypothesesconclusionMeasurable (clippedFinitePath c X cap)Proof (Lean source)
theorem measurable_clippedFinitePath {ι Ω : Type*} [Fintype ι] [MeasurableSpace Ω] (c : ι → Path) (X : Ω → ι → ℝ) (hX : ∀ a, Measurable (fun ω => X ω a)) (cap : ℝ) : Measurable (clippedFinitePath c X cap) := by have hcont : Continuous (fun x : ι → ℝ => clippedFinitePath c (fun _ => x) cap ()) := by apply ContinuousMap.continuous_of_continuous_uncurry change Continuous (fun p : (ι → ℝ) × Time => scalarClip cap (∑ a, p.1 a * c a p.2)) unfold scalarClip fun_prop have hvec : Measurable X := measurable_pi_lambda _ hX let : BorelSpace Path := ⟨rfl⟩ exact hcont.measurable.comp hvec -
clippedFinitePath_independent_blockstheorem — Measurable functions of independent coordinate blocks produce independent clipped finite paths, even when every block uses the same deterministic coefficient family.hypothesesconclusioniIndepFun (fun j ω => clippedFinitePath (c j) (fun ω a => block j ω a) (cap j) ω) μProof (Lean source)
theorem clippedFinitePath_independent_blocks {ι Ω : Type*} [Fintype ι] [MeasurableSpace Ω] {n : ℕ} (μ : Measure Ω) (block : Fin n → Ω → (ι → ℝ)) (hblock : iIndepFun block μ) (c : Fin n → ι → Path) (cap : Fin n → ℝ) : iIndepFun (fun j ω => clippedFinitePath (c j) (fun ω a => block j ω a) (cap j) ω) μ := by have hmap (j : Fin n) : Measurable (fun x : ι → ℝ => clippedFinitePath (c j) (fun _ => x) (cap j) ()) := by have hcont : Continuous (fun x : ι → ℝ => clippedFinitePath (c j) (fun _ => x) (cap j) ()) := by apply ContinuousMap.continuous_of_continuous_uncurry change Continuous (fun p : (ι → ℝ) × Time => scalarClip (cap j) (∑ a, p.1 a * c j a p.2)) unfold scalarClip fun_prop let : BorelSpace Path := ⟨rfl⟩ exact hcont.measurable exact hblock.comp _ hmap
ConditionalAverage 1 core · 1 supporting For a finite auxiliary experiment, a conditional average is a finite weighted sum of continuous paths. ★ finite_conditional_path_risk_le
Finite conditional averages of continuous paths
For a finite auxiliary experiment, a conditional average is a finite weighted sum of continuous paths. Convexity of squared uniform norm gives a pointwise inequality and therefore contracts its expected squared path risk.
Under a probability law, measurable nonnegative auxiliary weights that sum to one, measurable continuous paths, and an integrable weighted squared-path cost, the expected squared supremum norm of the weighted average path Σ_a w_a(x)·Z_a(x) is at most the expected weighted average Σ_a w_a(x)·‖Z_a(x)‖² of the squared supremum norms: finite conditional averaging contracts expected squared supremum risk.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
finite_path_average_sq_norm_letheorem — Nonnegative finite weights summing to one and continuous paths give a squared-supremum Jensen inequality for their weighted average.hypothesesA :Type*Fintype Aweight :A → ℝhw_nonneg :∀ a, 0 ≤ weight ahw_sum :∑ a, weight a = 1Z :A → Pathconclusion‖∑ a, weight a • Z a‖ ^ 2 ≤ ∑ a, weight a * ‖Z a‖ ^ 2Proof (Lean source)
-- Apply finite Jensen to `ConvexOn ℝ univ (fun z : Path => ‖z‖^2)`; -- `convexOn_univ_norm` and `.pow` establish the convexity premise. theorem finite_path_average_sq_norm_le {A : Type*} [Fintype A] (weight : A → ℝ) (hw_nonneg : ∀ a, 0 ≤ weight a) (hw_sum : ∑ a, weight a = 1) (Z : A → Path) : ‖∑ a, weight a • Z a‖ ^ 2 ≤ ∑ a, weight a * ‖Z a‖ ^ 2 := by have hconv : ConvexOn ℝ univ (fun z : Path => ‖z‖ ^ 2) := by have hnorm : ConvexOn ℝ univ (norm : Path → ℝ) := convexOn_univ_norm convert hnorm.pow (fun z _ => norm_nonneg z) 2 using 1 <;> rfl simpa only [Finset.sum_smul, smul_eq_mul] using hconv.map_sum_le (t := univ) (w := weight) (p := Z) (fun a _ => hw_nonneg a) (by simpa using hw_sum) (fun _ _ => Set.mem_univ _)
ControlQuantiles 1 core · 0 supporting A continuous nondecreasing control on the unit interval has a monotone section over its range. ★ exists_monotone_control_section
Quantiles of a continuous variation control
A continuous nondecreasing control on the unit interval has a monotone section over its range. Dyadic points in that range therefore have consistent representatives even when the control has flat intervals.
If a continuous control path on the unit interval is nondecreasing and zero at time zero, then every level between zero and its terminal value is attained at some time, and these representative times can be chosen increasing in the level.
Formal statement
Proof (Lean source)
CopyJensen 1 core · 0 supporting The squared norm of a centered finite sum of Bochner-integrable paths is bounded by the expected squared norm of its difference from an independent copy. ★ centered_path_sum_energy_le_copy
Independent-copy Jensen reduction for path sums
The squared norm of a centered finite sum of Bochner-integrable paths is bounded by the expected squared norm of its difference from an independent copy. Independence among the summands is not needed for this reduction.
For finitely many random continuous paths that are Bochner-integrable and have integrable squared supremum norm, the expected squared supremum norm of the centered sum of the paths is at most the expected squared supremum norm of the summed differences between two independent draws of the paths.
Formal statement
Proof (Lean source)
CopySigns 1 core · 0 supporting The differences between an independent finite family of paths and a product copy have the same joint law after any fixed coordinatewise sign reversal. ★ independent_copy_difference_energy_eq_sign_energy
Sign symmetry of independent path differences
The differences between an independent finite family of paths and a product copy have the same joint law after any fixed coordinatewise sign reversal. Consequently their squared sum energy equals their averaged signed energy.
For finitely many random continuous paths that are measurable, have integrable squared supremum norm, and are mutually independent, the expected squared supremum norm of the summed differences between two independent draws equals the expected Rademacher energy (sign-averaged squared supremum norm) of those differences.
Formal statement
Proof (Lean source)
CopySwap 1 core · 0 supporting For an independent finite path family, the joint law of its differences from an independent copy is invariant under coordinatewise sign changes. ★ independent_copy_difference_map_sign_invariant
Sign-swap law for independent path copies
For an independent finite path family, the joint law of its differences from an independent copy is invariant under coordinatewise sign changes.
For finitely many measurable and mutually independent random continuous paths, swapping the two independent draws in any selected coordinates leaves the joint law of the array of differences between the draws unchanged.
Formal statement
Proof (Lean source)
DyadicApproximation 1 core · 2 supporting This module isolates the integer indexing and zero-control facts needed to reconstruct a path from compatible dyadic quantile grids. ★ controlled_path_eq_of_same_control
Lower dyadic approximation for continuous path controls
This module isolates the integer indexing and zero-control facts needed to reconstruct a path from compatible dyadic quantile grids. The index chain approximates every control value, including the right endpoint.
If a scalar control path dominates the summed squared increments of n paths over every ordered pair of times and the control takes the same value at times s and t, then every one of the paths takes the same value at s and t.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
exists_dyadic_lower_chaintheorem — If a real number x is at least 0 and at most 1, then there is a chain of dyadic indices i_k < 2^k, one per level k, starting at 0, with each next index equal to twice its parent or one more, such that x lies between i_k/2^k and (i_k + 1)/2^k at every level.hypothesesx :ℝhx0 :0 ≤ xhx1 :x ≤ 1conclusion∃ i : ∀ k : ℕ,Fin (2 ^ k + 1), (i 0).val = 0conclusion 1k :(i k).val < 2 ^ kconclusion 2k :(i k).val / (2 ^ k : ℝ) ≤ xx ≤ ((i k).val + 1) / (2 ^ k : ℝ)conclusion 3k :(i (k + 1)).val = 2 * (i k).val ∨ (i (k + 1)).val = 2 * (i k).val + 1Proof (Lean source)
theorem exists_dyadic_lower_chain (x : ℝ) (hx0 : 0 ≤ x) (hx1 : x ≤ 1) : ∃ i : ∀ k : ℕ, Fin (2 ^ k + 1), (i 0).val = 0 ∧ (∀ k, (i k).val < 2 ^ k) ∧ (∀ k, (i k).val / (2 ^ k : ℝ) ≤ x ∧ x ≤ ((i k).val + 1) / (2 ^ k : ℝ)) ∧ (∀ k, (i (k + 1)).val = 2 * (i k).val ∨ (i (k + 1)).val = 2 * (i k).val + 1) := by let d (k : ℕ) := 2 ^ k let f (k : ℕ) := ⌊x * (d k : ℝ)⌋₊ let v (k : ℕ) := min (f k) (d k - 1) have hdpos (k : ℕ) : 0 < d k := by simp [d] have hvlt (k : ℕ) : v k < d k := by dsimp [v] exact lt_of_le_of_lt (min_le_right ..) (sub_lt (hdpos k) (by decide)) let i (k : ℕ) : Fin (2 ^ k + 1) := ⟨v k, by have := hvlt k; dsimp [d] at this; omega⟩ refine ⟨i, ?_, ?_, ?_, ?_⟩ · have : v 0 = 0 := by simp [v, d] exact this · intro k exact hvlt k · intro k have hnonneg : 0 ≤ x * (d k : ℝ) := by positivity have hfloor : (f k : ℝ) ≤ x * (d k : ℝ) := Nat.floor_le hnonneg have hfloor' : x * (d k : ℝ) < (f k : ℝ) + 1 := Nat.lt_floor_add_one _ have hdreal : (0 : ℝ) < (d k : ℝ) := by exact_mod_cast hdpos k suffices (v k : ℝ) / (d k : ℝ) ≤ x ∧ x ≤ ((v k : ℝ) + 1) / (d k : ℝ) by simpa [i, d] using this by_cases htop : x = 1 · have hv : v k = d k - 1 := by have hf : f k = d k := by simp [f, htop] simp [v, hf] rw [hv] have hdle : 1 ≤ d k := hdpos k have hcast : ((d k - 1 : ℕ) : ℝ) = (d k : ℝ) - 1 := by rw [Nat.cast_sub hdle] norm_num rw [htop, hcast] constructor · apply (div_le_iff₀ hdreal).2 nlinarith · apply (le_div_iff₀ hdreal).2 nlinarith · have hxlt : x < 1 := lt_of_le_of_ne hx1 htop have hf_lt : f k < d k := (Nat.floor_lt hnonneg).2 (by nlinarith [mul_lt_mul_of_pos_right hxlt hdreal]) have hv : v k = f k := by simp [v, Nat.le_sub_one_of_lt hf_lt] rw [hv] constructor · apply (div_le_iff₀ hdreal).2 nlinarith · apply (le_div_iff₀ hdreal).2 linarith · intro k change v (k + 1) = 2 * v k ∨ v (k + 1) = 2 * v k + 1 by_cases htop : x = 1 · have hv (l : ℕ) : v l = d l - 1 := by have hf : f l = d l := by simp [f, htop] simp [v, hf] rw [hv k, hv (k + 1)] have hk : 1 ≤ d k := hdpos k have hk' : 1 ≤ d (k + 1) := hdpos (k + 1) have hd : d (k + 1) = 2 * d k := by simp [d, pow_succ, mul_comm] omega · have hxlt : x < 1 := lt_of_le_of_ne hx1 htop have hf_lt (l : ℕ) : f l < d l := by apply (Nat.floor_lt (by positivity : 0 ≤ x * (d l : ℝ))).2 have hp : (0 : ℝ) < (d l : ℝ) := by exact_mod_cast hdpos l nlinarith [mul_lt_mul_of_pos_right hxlt hp] have hv (l : ℕ) : v l = f l := by simp [v, Nat.le_sub_one_of_lt (hf_lt l)] rw [hv k, hv (k + 1)] have hdiv : f (k + 1) / 2 = f k := by have h := Nat.mul_cast_floor_div_cancel (n := 2) (by decide) (x * (d k : ℝ)) convert h using 1; simp [f, d, pow_succ, mul_comm, mul_left_comm] omega -
controlled_path_error_letheorem — If a scalar control path dominates the summed squared increments of n paths over every ordered pair of times, then for any two times, in either order, the summed squared increments are at most the absolute difference of the control values.hypothesesconclusion(∑ j, (w j t - w j s) ^ 2) ≤ |u t - u s|Proof (Lean source)
theorem controlled_path_error_le {n : ℕ} (w : Fin n → Path) (u : Path) (henergy : ∀ s t : Time, s ≤ t → (∑ j, (w j t - w j s) ^ 2) ≤ u t - u s) (s t : Time) : (∑ j, (w j t - w j s) ^ 2) ≤ |u t - u s| := by rcases le_total s t with hst | hts · exact (henergy s t hst).trans (le_abs_self _) · have h := henergy t s hts have hsq : (∑ j, (w j t - w j s) ^ 2) = ∑ j, (w j s - w j t) ^ 2 := by apply Finset.sum_congr rfl intro j _ ring rw [hsq] exact h.trans (le_abs_self _ |>.trans_eq (by rw [abs_sub_comm]))
DyadicGrid 1 core · 1 supporting This module constructs compatible time grids from a continuous scalar control and bounds the signed maximum of the increments on one finite grid level. ★ signed_grid_increment_max_energy_le
Dyadic sections of scalar path controls
This module constructs compatible time grids from a continuous scalar control and bounds the signed maximum of the increments on one finite grid level. The grids may repeat times when the control has flat intervals.
If every one of the m + 1 consecutive increments of a finite time grid has summed squared path increments at most δ, then the sign-averaged largest squared signed increment over the grid is at most 32 (1 + log(m + 1)) δ.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
exists_control_dyadic_gridtheorem — If a continuous control path is nondecreasing and zero at time zero, then it admits compatible dyadic time grids: the level-k grid has 2^k + 1 points in increasing order, its i-th point has control value i/2^k times the terminal value, and equal dyadic fractions at different levels have the same representative time.hypothesesProof (Lean source)
theorem exists_control_dyadic_grid (u : Path) (hmono : Monotone (u : Time → ℝ)) (hzero : u timeZero = 0) : ∃ t : ∀ k : ℕ, Fin (2 ^ k + 1) → Time, (∀ k, Monotone (t k)) ∧ (∀ k i, u (t k i) = ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne) ∧ (∀ k i l j, ((i.val : ℝ) / (2 ^ k : ℝ)) = ((j.val : ℝ) / (2 ^ l : ℝ)) → t k i = t l j) := by obtain ⟨q, hq, hqmono⟩ := exists_monotone_control_section u hmono hzero have hU : 0 ≤ u timeOne := by have h01 : timeZero ≤ timeOne := by change (0 : ℝ) ≤ 1 norm_num simpa only [hzero] using hmono h01 let level (k : ℕ) (i : Fin (2 ^ k + 1)) : Icc (0 : ℝ) (u timeOne) := ⟨((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne, by have hi : (i.val : ℝ) ≤ (2 ^ k : ℝ) := by exact_mod_cast Nat.le_of_lt_succ i.isLt have hpow : (0 : ℝ) < (2 ^ k : ℝ) := by positivity have hfrac : (i.val : ℝ) / (2 ^ k : ℝ) ≤ 1 := (div_le_iff₀ hpow).2 (by simpa using hi) constructor · positivity · nlinarith⟩ refine ⟨fun k i => q (level k i), ?_, ?_, ?_⟩ · intro k i j hij apply hqmono change ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne ≤ ((j.val : ℝ) / (2 ^ k : ℝ)) * u timeOne gcongr exact_mod_cast hij · intro k i exact hq (level k i) · intro k i l j hfrac apply congrArg q apply Subtype.ext change ((i.val : ℝ) / (2 ^ k : ℝ)) * u timeOne = ((j.val : ℝ) / (2 ^ l : ℝ)) * u timeOne rw [hfrac]
EnvelopeAlgebra 1 core · 2 supporting The real total variation and supremum-plus-variation envelope of a difference are bounded by the corresponding sums for its two paths. ★ pathSize_sub_le
Bounded-variation envelope under subtraction
The real total variation and supremum-plus-variation envelope of a difference are bounded by the corresponding sums for its two paths. These facts allow a product-law copy to be used in the centered-process argument.
If the path f has finite total variation and so does the path g, then the supremum-plus-variation size of f − g is at most the sum of the sizes of f and g.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
eVariationOn_path_sub_letheorem — The extended total variation of the difference of two continuous paths is at most the sum of their extended total variations.hypothesesf g :conclusionProof (Lean source)
theorem eVariationOn_path_sub_le (f g : Path) : eVariationOn (f - g) univ ≤ eVariationOn f univ + eVariationOn g univ := by apply iSup_le rintro ⟨n, ⟨u, hu, hus⟩⟩ calc (∑ i ∈ range n, edist ((f - g) (u (i + 1))) ((f - g) (u i))) ≤ (∑ i ∈ range n, edist (f (u (i + 1))) (f (u i))) + (∑ i ∈ range n, edist (g (u (i + 1))) (g (u i))) := by rw [← Finset.sum_add_distrib] apply Finset.sum_le_sum intro i hi simpa [ContinuousMap.sub_apply, vsub_eq_sub] using (edist_vsub_vsub_le (f (u (i + 1))) (g (u (i + 1))) (f (u i)) (g (u i))) _ ≤ eVariationOn f univ + eVariationOn g univ := add_le_add (eVariationOn.sum_le hu hus) (eVariationOn.sum_le hu hus) -
pathTV_sub_letheorem — If the path f has finite total variation and so does the path g, then the total variation of f − g is at most the sum of the total variations of f and g.hypothesesProof (Lean source)
theorem pathTV_sub_le (f g : Path) (hf : eVariationOn f univ < ⊤) (hg : eVariationOn g univ < ⊤) : pathTV (f - g) ≤ pathTV f + pathTV g := by have he := eVariationOn_path_sub_le f g simpa [pathTV, ENNReal.toReal_add (ne_of_lt hf) (ne_of_lt hg)] using (ENNReal.toReal_mono (ne_of_lt (ENNReal.add_lt_top.mpr ⟨hf, hg⟩)) he)
FiniteSignL2 1 core · 0 supporting The ordinary L₂ triangle inequality on the finite uniform sign space is stated in the sum-and-square notation used by the process estimates. ★ finite_sign_l2_sum_le
Finite sign-space second-moment triangle inequality
The ordinary L₂ triangle inequality on the finite uniform sign space is
stated in the sum-and-square notation used by the process estimates.
For finitely many real functions on the sign patterns of length n, the uniform sign-average of the square of their sum is at most the square of the sum of their individual root sign-average second moments.
Formal statement
Proof (Lean source)
Main 1 core · 0 supporting Independent continuous bounded-variation random paths admit a universal second-moment bound for the supremum of their centered sum. ★ centered_path_sum_maximal
The bounded-variation process maximal inequality
Independent continuous bounded-variation random paths admit a universal second-moment bound for the supremum of their centered sum. The theorem uses the full time continuum and has no dimension or grid-size factor.
For finitely many random continuous paths on the unit interval that are measurable, Bochner-integrable, almost surely of bounded variation, with integrable squared supremum-plus-variation size, and mutually independent, the expected squared supremum norm of their centered sum is at most 16384 times the sum of their expected squared sizes.
Formal statement
Proof (Lean source)
Rademacher 1 core · 2 supporting The finite sign average controls the supremum over the whole unit interval. ★ rademacherEnergy_le_pathSize_sq
Rademacher maximal bound for controlled paths
The finite sign average controls the supremum over the whole unit interval. The proof uses the common variation control to partition time by mass, then applies sub-Gaussian increment estimates and dyadic chaining.
If each of finitely many continuous paths has bounded variation, then their Rademacher energy is at most 4096 times the sum of their squared supremum-plus-total-variation sizes.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
increment_energy_le_controltheorem — Suppose each control path v_j is nondecreasing and zero at time zero, and bounds the increments of the path w_j: for s ≤ t, |w_j(t) − w_j(s)| ≤ v_j(t) − v_j(s). Then for times s ≤ t, the summed squared increments of the paths w_j from s to t are at most the sum of v_j(1)·(v_j(t) − v_j(s)).hypothesesn :ℕhzero :∀ j, v j timeZero = 0hinc :∀ j (s t : Time)ifs ≤ tthen|w j t - w j s| ≤ v j t - v j ss t :hst :s ≤ tconclusion(∑ j, (w j t - w j s) ^ 2) ≤ ∑ j, v j timeOne * (v j t - v j s)Proof (Lean source)
theorem increment_energy_le_control {n : ℕ} (w v : Fin n → Path) (hmono : ∀ j, Monotone (v j : Time → ℝ)) (hzero : ∀ j, v j timeZero = 0) (hinc : ∀ j (s t : Time), s ≤ t → |w j t - w j s| ≤ v j t - v j s) (s t : Time) (hst : s ≤ t) : (∑ j, (w j t - w j s) ^ 2) ≤ ∑ j, v j timeOne * (v j t - v j s) := by apply Finset.sum_le_sum intro j _ have hs0 : 0 ≤ v j s := by have h0s : timeZero ≤ s := s.property.1 simpa only [hzero j] using hmono j h0s have hst0 : 0 ≤ v j t - v j s := sub_nonneg.mpr (hmono j hst) have ht1 : v j t ≤ v j timeOne := hmono j t.property.2 have hsq : (w j t - w j s) ^ 2 ≤ (v j t - v j s) ^ 2 := by calc (w j t - w j s) ^ 2 = |w j t - w j s| ^ 2 := (sq_abs _).symm _ ≤ (v j t - v j s) ^ 2 := (sq_le_sq₀ (abs_nonneg _) hst0).mpr (hinc j s t hst) nlinarith -
rademacherEnergy_le_controltheorem — Suppose each control path v_j is nondecreasing and zero at time zero, and bounds the increments of the path w_j: for s ≤ t, |w_j(t) − w_j(s)| ≤ v_j(t) − v_j(s). Then the Rademacher energy of the paths w_j is at most 4096 times the sum of (‖w_j‖ + v_j(1))^2, a dimension-free bound.hypothesesn :ℕhzero :∀ j, v j timeZero = 0hinc :∀ j (s t : Time)ifs ≤ tthen|w j t - w j s| ≤ v j t - v j sconclusionrademacherEnergy w ≤ 4096 * ∑ j, (‖w j‖ + v j timeOne) ^ 2Proof (Lean source)
theorem rademacherEnergy_le_control {n : ℕ} (w v : Fin n → Path) (hmono : ∀ j, Monotone (v j : Time → ℝ)) (hzero : ∀ j, v j timeZero = 0) (hinc : ∀ j (s t : Time), s ≤ t → |w j t - w j s| ≤ v j t - v j s) : rademacherEnergy w ≤ 4096 * ∑ j, (‖w j‖ + v j timeOne) ^ 2 := by /- Set ν(t) = ∑ j (v_j(1)) v_j(t). By `increment_energy_le_control`, ν controls squared coefficient increments. Apply `rademacherEnergy_le_scalar_control`. Its initial-energy and total control-mass terms are each bounded by the displayed envelope sum. -/ classical let u : Path := ∑ j, (v j timeOne) • v j have hvnonneg (j : Fin n) : 0 ≤ v j timeOne := by have h01 : timeZero ≤ timeOne := by change (0 : ℝ) ≤ 1 norm_num simpa only [hzero j] using hmono j h01 have humono : Monotone (u : Time → ℝ) := by intro s t hst simp only [u, ContinuousMap.sum_apply, ContinuousMap.smul_apply, smul_eq_mul] exact Finset.sum_le_sum fun j _ => mul_le_mul_of_nonneg_left (hmono j hst) (hvnonneg j) have huzero : u timeZero = 0 := by simp [u, hzero] have huenergy (s t : Time) (hst : s ≤ t) : (∑ j, (w j t - w j s) ^ 2) ≤ u t - u s := by calc (∑ j, (w j t - w j s) ^ 2) ≤ ∑ j, v j timeOne * (v j t - v j s) := increment_energy_le_control w v hmono hzero hinc s t hst _ = u t - u s := by simp only [u, ContinuousMap.sum_apply, ContinuousMap.smul_apply, smul_eq_mul, ← Finset.sum_sub_distrib] congr 1 ext j ring have hbound : (∑ j, (w j timeZero) ^ 2) + u timeOne ≤ ∑ j, (‖w j‖ + v j timeOne) ^ 2 := by simp only [u, ContinuousMap.sum_apply, ContinuousMap.smul_apply, smul_eq_mul, ← Finset.sum_add_distrib] apply Finset.sum_le_sum intro j _ have heval : |w j timeZero| ≤ ‖w j‖ := by simpa only [Real.norm_eq_abs] using (ContinuousMap.norm_coe_le_norm (w j) timeZero) have hsq : (w j timeZero) ^ 2 ≤ ‖w j‖ ^ 2 := by calc (w j timeZero) ^ 2 = |w j timeZero| ^ 2 := (sq_abs _).symm _ ≤ ‖w j‖ ^ 2 := (sq_le_sq₀ (abs_nonneg _) (norm_nonneg _)).mpr heval nlinarith [norm_nonneg (w j), hvnonneg j] exact (rademacherEnergy_le_scalar_control w u humono huzero huenergy).trans (mul_le_mul_of_nonneg_left hbound (by norm_num))
SignedChainNumerics 1 core · 1 supporting The square roots of the finite-class dyadic bounds form a summable numerical series. ★ dyadic_log_sqrt_tsum_le_40
Numerical dyadic chaining series
The square roots of the finite-class dyadic bounds form a summable numerical series. The explicit bound leaves room for the final constant 4096.
The sum over all levels k of the square roots of 32 (1 + log 2^(k+1)) / 2^(k+1) is at most 40.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
dyadic_log_sqrt_summabletheorem — The square roots of the dyadic logarithmic energy factors 32 (1 + log 2^(k+1)) / 2^(k+1) form a summable sequence in k.Proof (Lean source)
theorem dyadic_log_sqrt_summable : Summable (fun k : ℕ => sqrt (32 * (1 + log ((2 ^ (k + 1) : ℕ) : ℝ)) / (2 : ℝ) ^ (k + 1))) := by /- Use `log(2^(k+1)) ≤ k+1`, then compare the square root of the polynomial factor with a geometric sequence of ratio strictly between `1/sqrt 2` and `1`. -/ apply Summable.of_nonneg_of_le (fun k => Real.sqrt_nonneg _) (fun k => dyadic_log_sqrt_le_geometric k) exact (summable_geometric_of_lt_one (by norm_num : (0 : ℝ) ≤ 3 / 4) (by norm_num : (3 / 4 : ℝ) < 1)).mul_left 8
SignedLevelEnergy 1 core · 1 supporting The finite-class sign maximal estimate bounds the adjacent increments on one control grid. ★ signedDyadicIncrementMax_energy_le
Second moments of one signed dyadic increment level
The finite-class sign maximal estimate bounds the adjacent increments on one control grid. Keeping this estimate separate makes the later infinite-level triangle inequality independent of grid indexing.
Suppose a scalar control u dominates the summed squared path increments over every interval, and the dyadic grids are monotone at every level and place their i-th level-k point at control value i/2^k times the terminal value. Then at every level k the sign-average of the squared maximal signed increment is at most 32 (1 + log 2^(k+1)) times u(1)/2^(k+1).
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
signed_grid_abs_max_energy_letheorem — If every one of the m + 1 consecutive increments of a finite time grid has summed squared path increments at most δ, then the sign-average of the squared largest absolute signed increment over the grid is at most 32 (1 + log(m + 1)) δ.hypothesesconclusion(∑ σ : Fin n → Bool, (Finset.univ.sup' univ_nonempty (fun i : Fin (m + 1) => |∑ j, (if σ j then (1 : ℝ) else -1) * (w j (t i.succ) - w j (t i.castSucc))|)) ^ 2) / (2 ^ n : ℝ)≤ 32 * (1 + log (m + 1)) * δProof (Lean source)
theorem signed_grid_abs_max_energy_le {m n : ℕ} (w : Fin n → Path) (t : Fin (m + 2) → Time) (δ : ℝ) (hδ : ∀ i : Fin (m + 1), (∑ j, (w j (t i.succ) - w j (t i.castSucc)) ^ 2) ≤ δ) : (∑ σ : Fin n → Bool, (Finset.univ.sup' univ_nonempty (fun i : Fin (m + 1) => |∑ j, (if σ j then (1 : ℝ) else -1) * (w j (t i.succ) - w j (t i.castSucc))|)) ^ 2) / (2 ^ n : ℝ) ≤ 32 * (1 + log (m + 1)) * δ := by /- Rewrite the square of the finite supremum of absolute values as the supremum of squares, using monotonicity of squaring on nonnegative reals. The result is `signMaxEnergy` and follows from `signed_grid_increment_max_energy_le`. -/ classical let a : Fin (m + 1) → Fin n → ℝ := fun i j => w j (t i.succ) - w j (t i.castSucc) let X : (Fin n → Bool) → Fin (m + 1) → ℝ := fun σ i => ∑ j, (if σ j then (1 : ℝ) else -1) * a i j have hmax (σ : Fin n → Bool) : (Finset.univ.sup' univ_nonempty (fun i => |X σ i|)) ^ 2 = Finset.univ.sup' univ_nonempty (fun i => (X σ i) ^ 2) := by let M := Finset.univ.sup' univ_nonempty (fun i => |X σ i|) have hM : 0 ≤ M := (abs_nonneg (X σ 0)).trans (Finset.le_sup' (fun i : Fin (m + 1) => |X σ i|) (by simp)) apply le_antisymm · obtain ⟨i, _, hi⟩ := Finset.exists_mem_eq_sup' univ_nonempty (fun i => |X σ i|) rw [hi] simpa only [sq_abs, abs_abs] using (Finset.le_sup' (fun i : Fin (m + 1) => (X σ i) ^ 2) (Finset.mem_univ i)) · apply Finset.sup'_le intro i _ have hi : |X σ i| ≤ M := Finset.le_sup' (fun i : Fin (m + 1) => |X σ i|) (by simp) nlinarith [abs_nonneg (X σ i), sq_abs (X σ i)] have heq : (∑ σ : Fin n → Bool, (Finset.univ.sup' univ_nonempty (fun i => |X σ i|)) ^ 2) / (2 ^ n : ℝ) = signMaxEnergy a := by unfold signMaxEnergy congr 1 apply Finset.sum_congr rfl intro σ _ exact hmax σ change (∑ σ : Fin n → Bool, (Finset.univ.sup' univ_nonempty (fun i => |X σ i|)) ^ 2) / (2 ^ n : ℝ) ≤ _ rw [heq] exact signed_grid_increment_max_energy_le w t δ hδ
SignedSeriesL2 1 core · 0 supporting This module passes the finite sign-space triangle inequality to a summable sequence. ★ finite_sign_l2_tsum_le
Countable L₂ triangle inequality on finite sign space
This module passes the finite sign-space triangle inequality to a summable sequence. It is independent of path variation and dyadic grids.
If, for a series of real functions on the sign patterns of length n, the root sign-average second moments of its terms are summable, then the sign-average square of the series is at most the square of the sum of those root second moments.
Formal statement
Proof (Lean source)
SignTail 2 core · 0 supporting An exponential-moment estimate gives a Gaussian tail for the uniform law on Boolean sign vectors. ★ signTailMass_le
Tail bound for a finite signed sum
An exponential-moment estimate gives a Gaussian tail for the uniform law on Boolean sign vectors. This is the first step toward a finite-class squared maximum estimate.
The sign-tail mass of a coefficient vector in ℝ^n at a threshold u is the fraction of the 2^n sign vectors whose signed sum has absolute value at least u.
For a nonnegative threshold u and a coefficient vector with positive sum of squares, the fraction of sign vectors whose signed sum has absolute value at least u is at most 2·exp(−u^2/(2 times the sum of squared coefficients)), uniformly in the number of signs.
Formal statement
Proof (Lean source)
TensorChebyshev 1 core · 1 supporting A continuous polynomial path in four variables whose cube evaluations have bounded variation and path size at most B has a tensor Chebyshev expansion whose coefficient paths are continuous, of bounded variation, and of s ★ tensorChebyshevPath_expansion
Tensor Chebyshev expansion of bounded-variation polynomial paths
A continuous polynomial path in four variables whose cube evaluations have bounded variation
and path size at most B has a tensor Chebyshev expansion whose coefficient paths are
continuous, of bounded variation, and of size at most 16 B. The polynomial algebra of the
tensor Chebyshev basis lives in Causalean.Mathlib.Analysis.Approximation.Chebyshev.TensorChebyshev.
Let a time-indexed family of four-variable real polynomials and a nonnegative number B be given, with degree at most D in each variable at every time. If, at every point of the cube [−1, 1]^4, the value of the polynomial is continuous in time, has bounded variation in time, and has supremum-plus-variation size at most B, then there are continuous coefficient paths, one for each multi-index in {0, …, D}^4, such that at every time the polynomial equals the corresponding combination of products of first-kind Chebyshev polynomials, every coefficient path has bounded variation, and every coefficient path has size at most 16 B.
Formal statement
Proof (Lean source)
1 supporting declaration (lemmas, instances)
-
tensorChebyshev_coefficientPath_sizetheorem — The explicit tensor Chebyshev integral coefficients of a continuous polynomial path form continuous bounded-variation paths, each with size at most 16 B when every cube evaluation path has size at most B.hypothesesD :ℕp :B :ℝhB :0 ≤ Bhcont :hBV :∀ x (hx : x ∈ normalizedCube 4),hbound :∀ x (hx : x ∈ normalizedCube 4),conclusionProof (Lean source)
theorem tensorChebyshev_coefficientPath_size {D : ℕ} (p : Time → MvPolynomial (Fin 4) ℝ) (B : ℝ) (hB : 0 ≤ B) (hcont : ∀ x ∈ normalizedCube 4, Continuous (fun t => eval x (p t))) (hBV : ∀ x (hx : x ∈ normalizedCube 4), eVariationOn (⟨fun t => eval x (p t), hcont x hx⟩ : Path) univ < ⊤) (hbound : ∀ x (hx : x ∈ normalizedCube 4), pathSize (⟨fun t => eval x (p t), hcont x hx⟩ : Path) ≤ B) : ∃ c : (Fin 4 → Fin (D + 1)) → Path, (∀ t k, c k t = tensorChebyshevCoefficient D (p t) k) ∧ (∀ k, eVariationOn (c k) univ < ⊤) ∧ (∀ k, pathSize (c k) ≤ 16 * B) := by let ν : Measure (Fin 4 → ℝ) := volume.restrict (periodBox 4) have hbox : periodBox 4 = Icc (fun _ : Fin 4 => -Real.pi) (fun _ => Real.pi) := by ext u simp only [periodBox, Set.mem_ofPred_eq, Set.mem_Icc, Pi.le_def] constructor · intro h exact ⟨fun i => (h i).1, fun i => (h i).2⟩ · rintro ⟨h₁, h₂⟩ i exact ⟨h₁ i, h₂ i⟩ have hvol : volume (periodBox 4) = ofReal ((2 * Real.pi) ^ 4) := by rw [hbox, Real.volume_Icc_pi, Fin.prod_univ_four] have h : Real.pi - -Real.pi = 2 * Real.pi := by ring simp only [h] rw [ENNReal.ofReal_pow (by positivity : 0 ≤ 2 * Real.pi)] simp [pow_succ, mul_assoc] have hmass : ν univ = ofReal ((2 * Real.pi) ^ 4) := by simp [ν, hvol] have hmass0 : ν univ ≠ 0 := by rw [hmass]; positivity letI : IsFiniteMeasure ν := ⟨by rw [hmass]; simp⟩ letI : NeZero ν := ⟨by intro hz; exact hmass0 (by simp [hz])⟩ let μ : Measure (Fin 4 → ℝ) := (ν univ)⁻¹ • ν letI : IsProbabilityMeasure μ := by change IsProbabilityMeasure ((ν univ)⁻¹ • ν) infer_instance let f : (Fin 4 → ℝ) → Path := fun u => ⟨fun t => eval (cosPoint u) (p t), hcont (cosPoint u) (cosPoint_mem_normalizedCube u)⟩ have hfBV (u : Fin 4 → ℝ) : eVariationOn (f u) univ < ⊤ := by simpa [f, cosPoint] using hBV (cosPoint u) (cosPoint_mem_normalizedCube u) have hfsize (u : Fin 4 → ℝ) : pathSize (f u) ≤ B := by simpa [f, cosPoint] using hbound (cosPoint u) (cosPoint_mem_normalizedCube u) have hpoly (q : MvPolynomial (Fin 4) ℝ) : Continuous (fun u : Fin 4 → ℝ => eval (cosPoint u) q) := by induction q using MvPolynomial.induction_on with | C a => simpa using (continuous_const : Continuous (fun _ : Fin 4 → ℝ => a)) | add q r hq hr => convert hq.add hr using 1 funext u simp [MvPolynomial.eval_add] | mul_X q i hq => convert hq.mul (by fun_prop : Continuous (fun u : Fin 4 → ℝ => cos (u i))) using 1 funext u simp [cosPoint, MvPolynomial.eval_mul, MvPolynomial.eval_X] let w (k : Fin 4 → Fin (D + 1)) (u : Fin 4 → ℝ) : ℝ := ∏ i : Fin 4, (if (k i : ℕ) = 0 then (1 : ℝ) else 2) * cos ((k i : ℕ) * u i) have hw (k : Fin 4 → Fin (D + 1)) (u : Fin 4 → ℝ) : |w k u| ≤ 16 := by have hi (i : Fin 4) : |(if (k i : ℕ) = 0 then (1 : ℝ) else 2) * cos ((k i : ℕ) * u i)| ≤ 2 := by have ha : 0 ≤ (if (k i : ℕ) = 0 then (1 : ℝ) else 2) ∧ (if (k i : ℕ) = 0 then (1 : ℝ) else 2) ≤ 2 := by split_ifs <;> norm_num rw [abs_mul, abs_of_nonneg ha.1] have hc := Real.abs_cos_le_one ((k i : ℕ) * u i) nlinarith [abs_nonneg (cos ((k i : ℕ) * u i))] simp only [w, Finset.abs_prod] calc (∏ i : Fin 4, |(if (k i : ℕ) = 0 then (1 : ℝ) else 2) * cos ((k i : ℕ) * u i)|) ≤ ∏ _i : Fin 4, (2 : ℝ) := Finset.prod_le_prod (fun i _ => abs_nonneg _) (fun i _ => hi i) _ = 16 := by norm_num [Fin.prod_univ_four] have hInt (k : Fin 4 → Fin (D + 1)) (t : Time) : Integrable (fun u => w k u * f u t) μ := by have hc : Continuous (fun u : Fin 4 → ℝ => w k u * f u t) := by exact (by fun_prop : Continuous (w k)).mul (hpoly (p t)) have hi : Integrable (fun u => w k u * f u t) ν := by change IntegrableOn (fun u => w k u * f u t) (periodBox 4) rw [hbox] exact hc.continuousOn.integrableOn_compact isCompact_Icc exact hi.smul_measure (by simpa only [ne_eq, ENNReal.inv_eq_top] using hmass0) choose c hc hcbv hcsz using fun k => weightedPathIntegral_size_le μ f (w k) B 16 hB (by norm_num) (hInt k) (hw k) hfBV hfsize refine ⟨c, ?_, hcbv, hcsz⟩ intro t k rw [hc k t] let A : ℝ := ∏ i : Fin 4, if (k i : ℕ) = 0 then (1 / (2 * Real.pi) : ℝ) else 1 / Real.pi let L : ℝ := (2 * Real.pi) ^ 4 have hL : L ≠ 0 := by positivity have hfactor (u : Fin 4 → ℝ) : w k u = L * A * (∏ i : Fin 4, cos ((k i : ℕ) * u i)) := by simp only [w, A, L, Finset.prod_mul_distrib] congr 1 simp only [Fin.prod_univ_four] split_ifs <;> field_simp [Real.pi_ne_zero] have hweighted : (∫ u, w k u * f u t ∂ν) = L * A * ∫ u in periodBox 4, (∏ i : Fin 4, cos ((k i : ℕ) * u i)) * eval (fun i => cos (u i)) (p t) := by change (∫ u in periodBox 4, w k u * eval (cosPoint u) (p t)) = _ simp_rw [hfactor] change (∫ u in periodBox 4, (L * A * ∏ i : Fin 4, cos ((k i : ℕ) * u i)) * eval (fun i => cos (u i)) (p t)) = _ simp only [mul_assoc, integral_const_mul] calc (∫ u, w k u * f u t ∂μ) = (ν univ)⁻¹.toReal * (∫ u, w k u * f u t ∂ν) := by simp [μ] _ = L⁻¹ * (L * A * ∫ u in periodBox 4, (∏ i : Fin 4, cos ((k i : ℕ) * u i)) * eval (fun i => cos (u i)) (p t)) := by rw [hmass, ENNReal.toReal_inv, ENNReal.toReal_ofReal (by positivity : 0 ≤ L)] exact congrArg _ hweighted _ = tensorChebyshevCoefficient D (p t) k := by let I : ℝ := ∫ u in periodBox 4, (∏ i : Fin 4, cos ((k i : ℕ) * u i)) * eval (fun i => cos (u i)) (p t) change L⁻¹ * (L * A * I) = A * I calc L⁻¹ * (L * A * I) = (L⁻¹ * L) * (A * I) := by ring _ = A * I := by rw [inv_mul_cancel₀ hL, one_mul]
TensorCoefficient 2 core · 6 supporting For a continuous family of bounded-degree tensor polynomials, each fixed monomial coefficient is a continuous path. ★ tensorCoefficientPath_four_chebyshev_size_envelope
Bounded-variation tensor coefficient paths
For a continuous family of bounded-degree tensor polynomials, each fixed monomial coefficient is a continuous path. A uniform bounded-variation envelope for polynomial values on the normalized cube transfers to the coefficient paths with an explicit exponential degree cost.
The coefficient path of a time-indexed family of polynomials in d variables whose degree in each variable is at most D and whose values at every point of the integer grid {0, …, D}^d vary continuously in time, at a monomial index a, is the continuous real path on the unit time interval recording the coefficient of that monomial at each time.
Definition (Lean source)
Let a time-indexed family of four-variable polynomials have degree at most 2(K − 1) in each variable and grid evaluations continuous in time. If its evaluation at every point of the normalized cube is continuous in time, of bounded variation, and of path size at most B, where B is nonnegative, then the summed path sizes of its monomial coefficient paths are at most 16 (2(K − 1) + 1)^4 (1 + √2)^(8(K − 1)) B.
Formal statement
Proof (Lean source)
6 supporting declarations (lemmas, instances)
-
eVariationOn_integral_le_of_uniformtheorem — Integrating time-indexed functions against a probability measure preserves a uniform bound on their total variation. Every time section is integrable, and the samplewise extended variation is at most the finite real bound B.hypothesesconclusionProof (Lean source)
theorem eVariationOn_integral_le_of_uniform {α : Type*} [MeasurableSpace α] (μ : Measure α) [IsProbabilityMeasure μ] (f : α → Time → ℝ) (B : ℝ) (hB : 0 ≤ B) (hInt : ∀ t, Integrable (fun x => f x t) μ) (hvar : ∀ x, eVariationOn (f x) univ ≤ ofReal B) : eVariationOn (fun t => ∫ x, f x t ∂μ) univ ≤ ofReal B := by rw [eVariationOn] refine iSup_le fun p => ?_ obtain ⟨n, u, hu, _⟩ := p have hstep (i : ℕ) : Integrable (fun x => dist (f x (u (i + 1))) (f x (u i))) μ := by simpa [Real.dist_eq] using (hInt (u (i + 1))).sub (hInt (u i)) |>.abs have hpoint (x : α) : (∑ i ∈ range n, dist (f x (u (i + 1))) (f x (u i))) ≤ B := by have hv := (eVariationOn.sum_le (f := f x) (n := n) hu (fun _ => Set.mem_univ _)).trans (hvar x) have he : ofReal (∑ i ∈ range n, dist (f x (u (i + 1))) (f x (u i))) ≤ ofReal B := by simpa [ENNReal.ofReal_sum_of_nonneg (fun i _ => dist_nonneg), edist_dist] using hv exact (ENNReal.ofReal_le_ofReal_iff hB).mp he have hsum : Integrable (fun x => ∑ i ∈ range n, dist (f x (u (i + 1))) (f x (u i))) μ := integrable_finsetSum _ (fun i _ => hstep i) have hreal : (∑ i ∈ range n, dist (∫ x, f x (u (i + 1)) ∂μ) (∫ x, f x (u i) ∂μ)) ≤ B := by calc _ ≤ ∑ i ∈ range n, ∫ x, dist (f x (u (i + 1))) (f x (u i)) ∂μ := by apply Finset.sum_le_sum intro i _ simpa [Real.dist_eq, integral_sub (hInt (u (i + 1))) (hInt (u i))] using (abs_integral_le_integral_abs (f := fun x => f x (u (i + 1)) - f x (u i)) (μ := μ)) _ = ∫ x, ∑ i ∈ range n, dist (f x (u (i + 1))) (f x (u i)) ∂μ := by exact (integral_finsetSum _ (fun i _ => hstep i)).symm _ ≤ ∫ _ : α, B ∂μ := integral_mono hsum (integrable_const B) hpoint _ = B := by simp have he : ofReal (∑ i ∈ range n, dist (∫ x, f x (u (i + 1)) ∂μ) (∫ x, f x (u i) ∂μ)) ≤ ofReal B := ENNReal.ofReal_le_ofReal hreal simpa [ENNReal.ofReal_sum_of_nonneg (fun i _ => dist_nonneg), edist_dist] using he -
tensorCoefficientPath_bv_of_cubetheorem — If every value of a degree-bounded tensor-polynomial family on the normalized cube has finite total variation in time, then every fixed monomial coefficient path has finite total variation. The conclusion is qualitative and does not use a uniform variation envelope.hypothesesd D :ℕp :hdeg :∀ t i, (p t).degreeOf i ≤ Dhgrid :Continuous (fun t => eval (fun i => (a i : ℝ)) (p t))hcont :hBV :∀ x (hx : x ∈ normalizedCube d),a :conclusionProof (Lean source)
theorem tensorCoefficientPath_bv_of_cube {d D : ℕ} (p : Time → MvPolynomial (Fin d) ℝ) (hdeg : ∀ t i, (p t).degreeOf i ≤ D) (hgrid : ∀ a : Fin d → Fin (D + 1), Continuous (fun t => eval (fun i => (a i : ℝ)) (p t))) (hcont : ∀ x ∈ normalizedCube d, Continuous (fun t => eval x (p t))) (hBV : ∀ x (hx : x ∈ normalizedCube d), eVariationOn (⟨fun t => eval x (p t), hcont x hx⟩ : Path) Set.univ < ⊤) : ∀ a, eVariationOn (tensorCoefficientPath p hdeg hgrid a) Set.univ < ⊤ := by classical let I := Fin d → Fin (D + 1) let V := I → ℝ let x : I → Fin d → ℝ := fun b i => (b i : ℝ) / (D + 1) have hx (b : I) : x b ∈ normalizedCube d := by intro i change -1 ≤ (b i : ℝ) / (D + 1) ∧ (b i : ℝ) / (D + 1) ≤ 1 have hD : (0 : ℝ) < D + 1 := by positivity have hb : (b i : ℝ) ≤ D := by exact_mod_cast le_of_lt_succ (b i).isLt constructor · apply (le_div_iff₀ hD).2 nlinarith [show (0 : ℝ) ≤ (b i : ℝ) by positivity] · apply (div_le_iff₀ hD).2 nlinarith let E : V →ₗ[ℝ] V := { toFun := fun c b => ∑ a : I, c a * eval (x b) (monomial (tensorExponent a) (1 : ℝ)) map_add' := by intro c c' funext b change (∑ a, (c a + c' a) * _) = (∑ a, c a * _) + ∑ a, c' a * _ simp [add_mul, Finset.sum_add_distrib] map_smul' := by intro r c funext b change (∑ a, (r * c a) * _) = r * ∑ a, c a * _ simp [mul_assoc, Finset.mul_sum] } have hEval (c : V) (b : I) : E c b = eval (x b) (tensorPolynomial c) := by change (∑ a, c a * eval (x b) (monomial (tensorExponent a) (1 : ℝ))) = _ simp [tensorPolynomial, MvPolynomial.eval_monomial] rfl have hdegpoly (c : V) (i : Fin d) : (tensorPolynomial c).degreeOf i ≤ D := by apply MvPolynomial.degreeOf_le_iff.mpr intro m hm have hc : (tensorPolynomial c).coeff m ≠ 0 := MvPolynomial.mem_support_iff.mp hm simp only [tensorPolynomial, MvPolynomial.coeff_sum, MvPolynomial.coeff_monomial] at hc obtain ⟨a, _, ha⟩ := Finset.exists_ne_zero_of_sum_ne_zero hc split_ifs at ha with he · rw [← he] change (a i : ℕ) ≤ D exact le_of_lt_succ (a i).isLt · exact (ha rfl).elim have hcoeff (c : V) (a : I) : tensorCoeffs (tensorPolynomial c) a = c a := by have hExp : Injective (tensorExponent (d := d) (D := D)) := by intro b b' h funext i apply Fin.ext have hi := congrArg (fun m : Fin d →₀ ℕ => m i) h simpa [tensorExponent] using hi simp only [tensorCoeffs, tensorPolynomial, MvPolynomial.coeff_sum, MvPolynomial.coeff_monomial] rw [Finset.sum_eq_single a] · simp · intro b _ hba have hne : tensorExponent b ≠ tensorExponent a := fun h => hba (hExp h) simp [hne] · intro h exact (h (Finset.mem_univ a)).elim have hinj : Injective E := by intro c c' h let S : Fin d → Finset ℝ := fun _ => Finset.univ.image (fun j : Fin (D + 1) => (j : ℝ) / (D + 1)) have hcard (i : Fin d) : (S i).card = D + 1 := by dsimp [S] rw [Finset.card_image_of_injective] · simp · intro a b hab apply Fin.ext have hD : (D + 1 : ℝ) ≠ 0 := by positivity have : (a : ℝ) = (b : ℝ) := (div_left_inj' hD).mp hab exact_mod_cast this have hpoly : tensorPolynomial c = tensorPolynomial c' := by have hdegree (i : Fin d) : (tensorPolynomial c - tensorPolynomial c').degreeOf i < (S i).card := by rw [hcard i] exact lt_of_le_of_lt (MvPolynomial.degreeOf_sub_le i (tensorPolynomial c) (tensorPolynomial c')) (Nat.lt_succ_of_le (max_le (hdegpoly c i) (hdegpoly c' i))) have hzero : tensorPolynomial c - tensorPolynomial c' = 0 := MvPolynomial.eq_zero_of_eval_zero_at_prod_finset (tensorPolynomial c - tensorPolynomial c') S hdegree (by intro y hy have hchoice : ∀ i : Fin d, ∃ b : Fin (D + 1), (b : ℝ) / (D + 1) = y i := by intro i obtain ⟨b, _, hb⟩ := Finset.mem_image.mp (hy i) exact ⟨b, hb⟩ choose b hb using hchoice have hxy : x b = y := funext hb have he := congrArg (fun v : V => v b) h simpa [hEval, MvPolynomial.eval_sub, hxy] using sub_eq_zero.mpr he) exact sub_eq_zero.mp hzero funext b calc c b = tensorCoeffs (tensorPolynomial c) b := (hcoeff c b).symm _ = tensorCoeffs (tensorPolynomial c') b := by rw [hpoly] _ = c' b := hcoeff c' b let e := LinearEquiv.ofBijective E ⟨hinj, LinearMap.surjective_of_injective hinj⟩ let g : Time → V := fun t b => eval (x b) (p t) have hg (t : Time) : g t = E (tensorCoeffs (D := D) (p t)) := by funext b change eval (x b) (p t) = E (tensorCoeffs (p t)) b rw [hEval, tensorPolynomial_tensorCoeffs (p t) (hdeg t)] have hformula (a : I) (t : Time) : tensorCoeffs (p t) a = ∑ b : I, (e.symm (single b (1 : ℝ))) a * g t b := by have he : e.symm (g t) = tensorCoeffs (p t) := by rw [hg] exact e.symm_apply_apply _ rw [← congrArg (fun v : V => v a) he] conv_lhs => rw [← LinearMap.sum_single_apply (fun _ : I => ℝ) (g t)] rw [map_sum] rw [Finset.sum_apply] apply Finset.sum_congr rfl intro b _ have hs : single b (g t b) = (g t b) • single b (1 : ℝ) := by rw [← Pi.single_smul] simp rw [hs, map_smul] change g t b * (e.symm (single b (1 : ℝ))) a = (e.symm (single b (1 : ℝ))) a * g t b ring have hadd (f k : Time → ℝ) : eVariationOn (fun t => f t + k t) Set.univ ≤ eVariationOn f Set.univ + eVariationOn k Set.univ := by apply iSup_le rintro ⟨n, ⟨u, hu, hus⟩⟩ calc (∑ i ∈ range n, edist (f (u (i + 1)) + k (u (i + 1))) (f (u i) + k (u i))) ≤ (∑ i ∈ range n, edist (f (u (i + 1))) (f (u i))) + (∑ i ∈ range n, edist (k (u (i + 1))) (k (u i))) := by rw [← Finset.sum_add_distrib] exact Finset.sum_le_sum (fun i _ => edist_add_add_le _ _ _ _) _ ≤ eVariationOn f Set.univ + eVariationOn k Set.univ := add_le_add (eVariationOn.sum_le hu hus) (eVariationOn.sum_le hu hus) have hsum (s : Finset I) (f : I → Time → ℝ) : eVariationOn (fun t => ∑ b ∈ s, f b t) Set.univ ≤ ∑ b ∈ s, eVariationOn (f b) Set.univ := by induction s using Finset.induction_on with | empty => simpa using (eVariationOn.constant_on (f := fun _ : Time => (0 : ℝ)) (s := Set.univ) (by simp)) | @insert b s hbs ih => simp only [Finset.sum_insert hbs] exact (hadd (f b) _).trans (add_le_add_right ih _) have hmul (r : ℝ) (f : Time → ℝ) : eVariationOn (fun t => r * f t) Set.univ ≤ (‖r‖₊ : ENNReal) * eVariationOn f Set.univ := by have h := (lipschitzWith_smul r).lipschitzOnWith.comp_eVariationOn_le (g := f) (s := Set.univ) (t := Set.univ) (by simp) simpa [Function.comp_def, smul_eq_mul] using h intro a have hvar : eVariationOn (tensorCoefficientPath p hdeg hgrid a) Set.univ ≤ ∑ b : I, (‖(e.symm (single b (1 : ℝ))) a‖₊ : ENNReal) * eVariationOn (g · b) Set.univ := by calc _ = eVariationOn (fun t => ∑ b : I, (e.symm (single b (1 : ℝ))) a * g t b) Set.univ := by congr 1 funext t exact hformula a t _ ≤ ∑ b : I, eVariationOn (fun t => (e.symm (single b (1 : ℝ))) a * g t b) Set.univ := by simpa using hsum univ (fun b t => (e.symm (single b (1 : ℝ))) a * g t b) _ ≤ _ := Finset.sum_le_sum (fun b _ => hmul _ _) apply lt_of_le_of_lt hvar apply (ENNReal.sum_lt_top).2 intro b _ exact ENNReal.mul_lt_top (by simp) (hBV (x b) (hx b)) -
pathSize_weighted_sum_letheorem — A finite fixed linear combination of bounded-variation paths has path size at most the absolute-weighted sum of their path sizes. This controls both the uniform norm and every time-partition increment sum with the same coefficients.hypothesesProof (Lean source)
theorem pathSize_weighted_sum_le {ι : Type*} [Fintype ι] (c : ι → Path) (w : ι → ℝ) (hBV : ∀ i, eVariationOn (c i) univ < ⊤) : pathSize (∑ i, w i • c i) ≤ ∑ i, |w i| * pathSize (c i) := by classical have hnorm : ‖∑ i, w i • c i‖ ≤ ∑ i, |w i| * ‖c i‖ := by calc ‖∑ i, w i • c i‖ ≤ ∑ i, ‖w i • c i‖ := norm_sum_le _ _ _ = ∑ i, |w i| * ‖c i‖ := by simp [norm_smul, Real.norm_eq_abs] have hadd (f g : Time → ℝ) : eVariationOn (fun t => f t + g t) univ ≤ eVariationOn f univ + eVariationOn g univ := by apply iSup_le rintro ⟨n, ⟨u, hu, hus⟩⟩ calc (∑ j ∈ range n, edist (f (u (j + 1)) + g (u (j + 1))) (f (u j) + g (u j))) ≤ (∑ j ∈ range n, edist (f (u (j + 1))) (f (u j))) + (∑ j ∈ range n, edist (g (u (j + 1))) (g (u j))) := by rw [← Finset.sum_add_distrib] exact Finset.sum_le_sum (fun j _ => edist_add_add_le _ _ _ _) _ ≤ eVariationOn f univ + eVariationOn g univ := add_le_add (eVariationOn.sum_le hu hus) (eVariationOn.sum_le hu hus) have hsum (s : Finset ι) (f : ι → Time → ℝ) : eVariationOn (fun t => ∑ i ∈ s, f i t) univ ≤ ∑ i ∈ s, eVariationOn (f i) univ := by induction s using Finset.induction_on with | empty => simpa using (eVariationOn.constant_on (f := fun _ : Time => (0 : ℝ)) (s := univ) (by simp)) | @insert i s his ih => simp only [Finset.sum_insert his] exact (hadd (f i) _).trans (add_le_add_right ih _) have hmul (r : ℝ) (f : Time → ℝ) : eVariationOn (fun t => r * f t) univ ≤ (‖r‖₊ : ENNReal) * eVariationOn f univ := by have h := (lipschitzWith_smul r).lipschitzOnWith.comp_eVariationOn_le (g := f) (s := univ) (t := univ) (by simp) simpa [Function.comp_def, smul_eq_mul] using h have hvar : eVariationOn (fun t => (∑ i, w i • c i) t) univ ≤ ∑ i, (‖w i‖₊ : ENNReal) * eVariationOn (c i) univ := by calc _ ≤ ∑ i, eVariationOn (fun t => w i * c i t) univ := by simpa [smul_eq_mul] using hsum univ (fun i t => w i * c i t) _ ≤ _ := Finset.sum_le_sum (fun i _ => hmul (w i) (c i)) have hfin : (∑ i, (‖w i‖₊ : ENNReal) * eVariationOn (c i) univ) < ⊤ := ENNReal.sum_lt_top.mpr (fun i _ => ENNReal.mul_lt_top (by simp) (hBV i)) have htv : pathTV (∑ i, w i • c i) ≤ ∑ i, |w i| * pathTV (c i) := by have h := ENNReal.toReal_mono (ne_of_lt hfin) hvar rw [ENNReal.toReal_sum (fun i _ => ne_of_lt (ENNReal.mul_lt_top (by simp) (hBV i)))] at h change (eVariationOn (fun t => (∑ i, w i • c i : Path) t) univ).toReal ≤ ∑ i, |w i| * pathTV (c i) simpa [pathTV, ENNReal.toReal_mul, Real.norm_eq_abs] using h dsimp [pathSize] simp only [Finset.sum_add_distrib, mul_add] linarith -
tensorCoeffs_four_cube_weightstheorem — Every coefficient of a four-variable polynomial of coordinatewise degree 2(K-1) is a fixed weighted sum of its values at one finite tensor grid inside the normalized cube. The total absolute weight over all coefficients and grid points has an exponential degree bound.hypothesesK :ℕhK :0 < Kconclusionconclusion 2tensorCoeffs (D := 2 * (K - 1)) p a = ∑ b, w a b * eval (x b) pconclusion 3(∑ a, ∑ b, |w a b|) ≤ (2 : ℝ) ^ (40 * K + 19)Proof (Lean source)
theorem tensorCoeffs_four_cube_weights {K : ℕ} (hK : 0 < K) : ∃ (x : (Fin 4 → Fin (2 * (K - 1) + 1)) → Fin 4 → ℝ) (w : (Fin 4 → Fin (2 * (K - 1) + 1)) → (Fin 4 → Fin (2 * (K - 1) + 1)) → ℝ), (∀ b, x b ∈ normalizedCube 4) ∧ (∀ (p : MvPolynomial (Fin 4) ℝ), (∀ i, p.degreeOf i ≤ 2 * (K - 1)) → ∀ a, tensorCoeffs (D := 2 * (K - 1)) p a = ∑ b, w a b * eval (x b) p) ∧ (∑ a, ∑ b, |w a b|) ≤ (2 : ℝ) ^ (40 * K + 19) := by refine ⟨tensorGridPoint, tensorGridWeight, tensorGridPoint_mem_cube, ?_, ?_⟩ · intro p hdeg a exact tensorGrid_coeff_recovery p hdeg a · calc (∑ a : Fin 4 → Fin (2 * (K - 1) + 1), ∑ b : Fin 4 → Fin (2 * (K - 1) + 1), |tensorGridWeight a b|) ≤ ((2 : ℝ) ^ (4 * (2 * (K - 1)) + 4)) ^ 4 := tensorGrid_weight_oneNorm_le 4 (2 * (K - 1)) _ = (2 : ℝ) ^ (4 * (4 * (2 * (K - 1)) + 4)) := by rw [show 4 * (4 * (2 * (K - 1)) + 4) = (4 * (2 * (K - 1)) + 4) * 4 by omega, pow_mul] _ ≤ (2 : ℝ) ^ (40 * K + 19) := by apply pow_le_pow_right₀ (by norm_num) omega -
tensorCoefficientPath_four_size_envelopetheorem — For four coordinates and coordinatewise degree 2(K-1), a uniform bound B on the path sizes of all cube evaluations bounds the sum of monomial coefficient path sizes by 2^(40K+20) B, provided those evaluation paths have finite variation.hypothesesK :ℕhK :0 < Kp :B :ℝhB :0 ≤ Bhdeg :∀ t i, (p t).degreeOf i ≤ 2 * (K - 1)hgrid :Continuous (fun t => eval (fun i => (a i : ℝ)) (p t))hcont :hBV :∀ x (hx : x ∈ normalizedCube 4),hbound :∀ x (hx : x ∈ normalizedCube 4),conclusion(∑ a, pathSize (tensorCoefficientPath p hdeg hgrid a)) ≤ (2 : ℝ) ^ (40 * K + 20) * BProof (Lean source)
theorem tensorCoefficientPath_four_size_envelope {K : ℕ} (hK : 0 < K) (p : Time → MvPolynomial (Fin 4) ℝ) (B : ℝ) (hB : 0 ≤ B) (hdeg : ∀ t i, (p t).degreeOf i ≤ 2 * (K - 1)) (hgrid : ∀ a : Fin 4 → Fin (2 * (K - 1) + 1), Continuous (fun t => eval (fun i => (a i : ℝ)) (p t))) (hcont : ∀ x ∈ normalizedCube 4, Continuous (fun t => eval x (p t))) (hBV : ∀ x (hx : x ∈ normalizedCube 4), eVariationOn (⟨fun t => eval x (p t), hcont x hx⟩ : Path) univ < ⊤) (hbound : ∀ x (hx : x ∈ normalizedCube 4), pathSize (⟨fun t => eval x (p t), hcont x hx⟩ : Path) ≤ B) : (∑ a, pathSize (tensorCoefficientPath p hdeg hgrid a)) ≤ (2 : ℝ) ^ (40 * K + 20) * B := by classical obtain ⟨x, w, hx, hrecover, hw⟩ := tensorCoeffs_four_cube_weights hK let c (b : Fin 4 → Fin (2 * (K - 1) + 1)) : Path := ⟨fun t => eval (x b) (p t), hcont (x b) (hx b)⟩ have hcBV (b) : eVariationOn (c b) univ < ⊤ := hBV (x b) (hx b) have hcBound (b) : pathSize (c b) ≤ B := hbound (x b) (hx b) have hpath (a : Fin 4 → Fin (2 * (K - 1) + 1)) : tensorCoefficientPath p hdeg hgrid a = ∑ b, w a b • c b := by ext t simpa [tensorCoefficientPath, c, smul_eq_mul] using hrecover (p t) (hdeg t) a calc (∑ a, pathSize (tensorCoefficientPath p hdeg hgrid a)) = ∑ a, pathSize (∑ b, w a b • c b) := by simp only [hpath] _ ≤ ∑ a, ∑ b, |w a b| * pathSize (c b) := Finset.sum_le_sum (fun a _ => pathSize_weighted_sum_le c (w a) hcBV) _ ≤ ∑ a, ∑ b, |w a b| * B := by apply Finset.sum_le_sum intro a _ apply Finset.sum_le_sum intro b _ exact mul_le_mul_of_nonneg_left (hcBound b) (abs_nonneg _) _ = (∑ a, ∑ b, |w a b|) * B := by simp [Finset.sum_mul] _ ≤ (2 : ℝ) ^ (40 * K + 19) * B := mul_le_mul_of_nonneg_right hw hB _ ≤ (2 : ℝ) ^ (40 * K + 20) * B := by apply mul_le_mul_of_nonneg_right _ hB apply pow_le_pow_right₀ (by norm_num) omega -
tensorCoefficientPath_four_bv_envelopetheorem — A four-variable tensor polynomial family of coordinatewise degree 2(K-1) has coefficient paths whose summed path sizes obey a coarse exponential degree envelope, provided every cube evaluation has bounded variation and path size at most B.hypothesesK :ℕhK :0 < Kp :B :ℝhB :0 ≤ Bhdeg :∀ t i, (p t).degreeOf i ≤ 2 * (K - 1)hgrid :Continuous (fun t => eval (fun i => (a i : ℝ)) (p t))hcont :hBV :∀ x (hx : x ∈ normalizedCube 4),hbound :∀ x (hx : x ∈ normalizedCube 4),conclusionconclusion 2(∑ a, pathSize (tensorCoefficientPath p hdeg hgrid a)) ≤ (2 : ℝ) ^ (40 * K + 20) * BProof (Lean source)
theorem tensorCoefficientPath_four_bv_envelope {K : ℕ} (hK : 0 < K) (p : Time → MvPolynomial (Fin 4) ℝ) (B : ℝ) (hB : 0 ≤ B) (hdeg : ∀ t i, (p t).degreeOf i ≤ 2 * (K - 1)) (hgrid : ∀ a : Fin 4 → Fin (2 * (K - 1) + 1), Continuous (fun t => eval (fun i => (a i : ℝ)) (p t))) (hcont : ∀ x ∈ normalizedCube 4, Continuous (fun t => eval x (p t))) (hBV : ∀ x (hx : x ∈ normalizedCube 4), eVariationOn (⟨fun t => eval x (p t), hcont x hx⟩ : Path) univ < ⊤) (hbound : ∀ x (hx : x ∈ normalizedCube 4), pathSize (⟨fun t => eval x (p t), hcont x hx⟩ : Path) ≤ B) : (∀ a, eVariationOn (tensorCoefficientPath p hdeg hgrid a) univ < ⊤) ∧ (∑ a, pathSize (tensorCoefficientPath p hdeg hgrid a)) ≤ (2 : ℝ) ^ (40 * K + 20) * B := by exact ⟨tensorCoefficientPath_bv_of_cube p hdeg hgrid hcont hBV, tensorCoefficientPath_four_size_envelope hK p B hB hdeg hgrid hcont hBV hbound⟩
WeightedIntegral 1 core · 0 supporting An integral of continuous paths against a bounded scalar weight remains a continuous path. ★ weightedPathIntegral_size_le
Weighted integrals of bounded-variation paths
An integral of continuous paths against a bounded scalar weight remains a continuous path. Its supremum norm plus total variation is bounded by the common path-size envelope times the weight bound. This is the analytic step for integral coefficient extraction.
Let a probability measure, a family of continuous paths indexed by its sample space together with a real weight function, and nonnegative numbers B and M be given. If at each time the weighted path value is integrable, the weight is bounded by M in absolute value everywhere, every path has bounded variation, and every path has supremum-plus-variation size at most B, then there is a continuous path whose value at each time is the integral of the weighted path values, which has bounded variation and size at most M B.