Documentation

FormalSLT.Covering.FiniteSubGaussianChaining

Finite sub-Gaussian chaining foundations #

This module starts the finite-process side of the chaining ladder. It is finite-index throughout: finite outcome space, finite index class, finite nets, and finite sums for expectation.

Main declarations:

This is not a continuous Dudley integral or a generic metric entropy theorem. It records the finite decomposition and expectation bookkeeping needed for later entropy estimates.

Weighted expectation over a finite outcome space. The caller supplies the weights and their probabilistic assumptions separately.

Equations
Instances For

    Supremum over a finite nonempty index type.

    Equations
    Instances For
      structure FormalSLT.Covering.FiniteSubGaussianChaining.FiniteNet (T : Type u_4) (A : Type u_5) [Fintype A] :
      Type (max u_4 u_5)

      A finite ε-net with an explicit nearest-net projection. A is the finite type of net points, center realizes a net point in T, and project chooses a nearest-net index for each target point.

      Instances For

        The nearest-net projection as a map back into the ambient index type.

        Equations
        Instances For

          The projection selected by a finite net is within the net radius.

          The cardinality of the finite net, i.e. the discrete covering number represented by this chosen net.

          Equations
          Instances For

            A finite net over a nonempty ambient type has positive covering number.

            The finite set of net indices actually hit by the projection map. This is a finite replacement for taking a supremum over an ambient index type T. It is useful when T is not finite but a projected supremum only ranges over the image of a finite net.

            Equations
            Instances For

              A chosen ambient source point whose projection realizes a projected net index. The choice is finite-image bookkeeping only; later theorems use it to build chains without assuming the ambient type is finite.

              Equations
              Instances For

                The chosen source projects to the projected net index.

                Projecting the chosen source point gives the center indexed by the projected net index.

                theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteNet.projection_pair_dist_le_radius_sum {T : Type u_2} {A : Type u_3} [Fintype A] {B : Type u_4} [Fintype B] (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist : N₁.dist = N₀.dist) (hsymm : ∀ (s t : T), N₀.dist s t = N₀.dist t s) (htri : ∀ (x y z : T), N₀.dist x z N₀.dist x y + N₀.dist y z) (t : T) :
                N₀.dist (N₀.projection t) (N₁.projection t) N₀.radius + N₁.radius

                Two finite net projections of the same point are within the sum of their radii, assuming the shared distance is symmetric and satisfies the triangle inequality. This is the finite-net geometry step used to turn net radii into projection-chain increment radii.

                def FormalSLT.Covering.FiniteSubGaussianChaining.FiniteNet.ProjectionPair {T : Type u_2} {A : Type u_3} [Fintype A] {B : Type u_4} [Fintype B] (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) :
                Type (max u_3 u_4)

                The finite family of projection pairs realized by projecting the same ambient point into two finite nets. This lets finite chaining pay entropy for the realized increment family rather than for the full ambient index type.

                Equations
                Instances For
                  @[implicit_reducible]
                  noncomputable instance FormalSLT.Covering.FiniteSubGaussianChaining.FiniteNet.projectionPairFintype {T : Type u_2} {A : Type u_3} [Fintype A] {B : Type u_4} [Fintype B] (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) :
                  Equations
                  def FormalSLT.Covering.FiniteSubGaussianChaining.FiniteNet.projectionPairOf {T : Type u_2} {A : Type u_3} [Fintype A] {B : Type u_4} [Fintype B] (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (t : T) :
                  N₀.ProjectionPair N₁

                  The projection pair selected by a point.

                  Equations
                  Instances For

                    The realized projection-pair family is bounded by the product of the two finite covering numbers.

                    Log-cardinality of realized projection pairs is bounded by the log of the product of the two finite covering numbers.

                    theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteNet.projectionPair_dist_le_radius_sum {T : Type u_2} {A : Type u_3} [Fintype A] {B : Type u_4} [Fintype B] (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist : N₁.dist = N₀.dist) (hsymm : ∀ (s t : T), N₀.dist s t = N₀.dist t s) (htri : ∀ (x y z : T), N₀.dist x z N₀.dist x y + N₀.dist y z) (pair : N₀.ProjectionPair N₁) :
                    N₀.dist (N₀.center (↑pair).1) (N₁.center (↑pair).2) N₀.radius + N₁.radius

                    Every realized projection pair inherits the sum-of-radii distance bound from the shared point whose projections produced it.

                    A finite weighted process with sub-Gaussian increment MGF control.

                    The process is indexed by a finite type T and observed on a finite outcome space Ω. The MGF field is intentionally abstract: later modules can derive it from concrete Gaussian/Rademacher constructions, while this module only needs a clean finite-process interface.

                    Instances For
                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.increment_mgf {Ω : Type u_1} {T : Type u_2} [Fintype Ω] (P : FiniteSubGaussianProcess Ω T) (s t : T) (lam : ) :
                      (finiteExpectation P.weight fun (ω : Ω) => Real.exp (lam * (P.X ω t - P.X ω s))) Real.exp (lam ^ 2 * P.varianceProxy * P.dist s t ^ 2 / 2)

                      The sub-Gaussian increment MGF bound packaged as a theorem.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.increment_mgf_le_radius {Ω : Type u_1} {T : Type u_2} [Fintype Ω] (P : FiniteSubGaussianProcess Ω T) (s t : T) (r : ) (hr : P.dist s t r) (hr_nonneg : 0 r) (lam : ) :
                      (finiteExpectation P.weight fun (ω : Ω) => Real.exp (lam * (P.X ω t - P.X ω s))) Real.exp (lam ^ 2 * P.varianceProxy * r ^ 2 / 2)

                      Radius-bounded form of the sub-Gaussian increment MGF bound for a single increment. This is the reusable finite-process primitive behind the finite max/entropy estimates below.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.projection_increment_mgf {Ω : Type u_1} {T : Type u_2} [Fintype Ω] (P : FiniteSubGaussianProcess Ω T) (π : TT) (j : ) (t : T) (lam : ) :
                      (finiteExpectation P.weight fun (ω : Ω) => Real.exp (lam * (P.X ω (π (j + 1) t) - P.X ω (π j t)))) Real.exp (lam ^ 2 * P.varianceProxy * P.dist (π j t) (π (j + 1) t) ^ 2 / 2)

                      The sub-Gaussian increment MGF bound along one level of a projection chain.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.projection_increment_mgf_le_radius {Ω : Type u_1} {T : Type u_2} [Fintype Ω] (P : FiniteSubGaussianProcess Ω T) (π : TT) (j : ) (r : ) (hr : ∀ (t : T), P.dist (π j t) (π (j + 1) t) r) (hr_nonneg : 0 r) (t : T) (lam : ) :
                      (finiteExpectation P.weight fun (ω : Ω) => Real.exp (lam * (P.X ω (π (j + 1) t) - P.X ω (π j t)))) Real.exp (lam ^ 2 * P.varianceProxy * r ^ 2 / 2)

                      Radius-bounded version of projection_increment_mgf. If a projection level moves every index point by at most r, the same MGF increment is bounded using r in place of the pointwise distance.

                      Finite expectation algebra #

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_mono {Ω : Type u_1} [Fintype Ω] {p : Ω} (hp : ∀ (ω : Ω), 0 p ω) {X Y : Ω} (hXY : ∀ (ω : Ω), X ω Y ω) :

                      Monotonicity of finite weighted expectation under nonnegative weights.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_add {Ω : Type u_1} [Fintype Ω] (p X Y : Ω) :
                      (finiteExpectation p fun (ω : Ω) => X ω + Y ω) = finiteExpectation p X + finiteExpectation p Y

                      Additivity of finite weighted expectation.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_const_of_sum_one {Ω : Type u_1} [Fintype Ω] (p : Ω) (c : ) (hsum : ω : Ω, p ω = 1) :
                      (finiteExpectation p fun ( : Ω) => c) = c

                      Expectation of a constant under finite weights with total mass one.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_supFunctional_le_projected_add_terminalError {Ω : Type u_1} [Fintype Ω] {p : Ω} (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (supFunctional projectedSup : Ω) (terminalError : ) (hterminal : ∀ (ω : Ω), supFunctional ω projectedSup ω + terminalError) :
                      finiteExpectation p supFunctional finiteExpectation p projectedSup + terminalError

                      Finite expectation adapter from a supplied supremum functional to a projected finite-supremum surrogate, under an explicit terminal approximation error.

                      This is only finite expectation bookkeeping. It deliberately does not define or prove measurability for a supremum over an arbitrary class: callers must supply the scalar supFunctional and the pointwise approximation hypothesis.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteSup_skeleton_le_projectedSup_add_terminalError {T : Type u_2} {A : Type u_3} [Nonempty T] {K : Type u_4} [Fintype K] [Nonempty K] [Fintype A] (N : FiniteNet T A) (embed : KT) (Y : T) (terminalError : ) (hterminal : ∀ (k : K), Y (embed k) Y (N.projection (embed k)) + terminalError) :
                      (finiteSup fun (k : K) => Y (embed k)) (finiteSup fun (u : N.ProjectedIndex) => Y (N.center u)) + terminalError

                      Finite-skeleton terminal approximation adapter. If every point in a finite separable skeleton is pointwise controlled by its terminal finite-net projection up to terminalError, then the skeleton supremum is controlled by the projected finite-net supremum up to the same error.

                      This is still a finite statement: K is a finite skeleton supplied by the caller, and N is a finite terminal net. It does not construct a supremum over an arbitrary infinite class.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.supFunctional_le_projectedSup_add_of_skeleton_terminal {T : Type u_2} {A : Type u_3} [Nonempty T] {K : Type u_4} [Fintype K] [Nonempty K] [Fintype A] (N : FiniteNet T A) (embed : KT) (Y : T) (supFunctional separabilityError terminalError : ) (hseparable : supFunctional (finiteSup fun (k : K) => Y (embed k)) + separabilityError) (hterminal : ∀ (k : K), Y (embed k) Y (N.projection (embed k)) + terminalError) :
                      supFunctional (finiteSup fun (u : N.ProjectedIndex) => Y (N.center u)) + (separabilityError + terminalError)

                      Pointwise projected-sup adapter for a supplied supremum functional.

                      The caller supplies a scalar supFunctional, a finite skeleton K, and two explicit approximation hypotheses:

                      • a separability/dense-net budget from supFunctional to the finite skeleton;
                      • a terminal projection budget from the finite skeleton to the terminal net.

                      The conclusion is exactly the hterminal hypothesis required by the finite-expectation boundary theorem. No arbitrary measurable supremum is defined here.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_supFunctional_le_projected_add_skeleton_terminalError {Ω : Type u_1} {T : Type u_2} {A : Type u_3} [Fintype Ω] [Nonempty T] {K : Type u_4} [Fintype K] [Nonempty K] [Fintype A] {p : Ω} (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (N : FiniteNet T A) (embed : KT) (Y : ΩT) (supFunctional : Ω) (separabilityError terminalError : ) (hseparable : ∀ (ω : Ω), supFunctional ω (finiteSup fun (k : K) => Y ω (embed k)) + separabilityError) (hterminal : ∀ (ω : Ω) (k : K), Y ω (embed k) Y ω (N.projection (embed k)) + terminalError) :
                      finiteExpectation p supFunctional (finiteExpectation p fun (ω : Ω) => finiteSup fun (u : N.ProjectedIndex) => Y ω (N.center u)) + (separabilityError + terminalError)

                      Finite expectation form of the separable/dense-net boundary adapter.

                      This is a reusable projected-sup-to-true-sup bridge: the true supremum is represented by a caller-supplied scalar functional, and all continuous content is isolated in the explicit finite-skeleton and terminal-approximation hypotheses.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.terminalApprox_of_pathwise_modulus {Ω : Type u_1} {T : Type u_2} {A : Type u_3} {K : Type u_4} [Fintype A] (N : FiniteNet T A) (embed : KT) (Y : ΩT) (terminalError : ) (hmodulus : ∀ (ω : Ω) (s t : T), N.dist s t N.radiusY ω s Y ω t + terminalError) (ω : Ω) (k : K) :
                      Y ω (embed k) Y ω (N.projection (embed k)) + terminalError

                      Terminal-projection approximation from a pathwise modulus at the terminal net radius.

                      This is the direct helper for the hterminalApprox assumption in the finite-skeleton Dudley adapter: if each sample path is one-sided continuous at the terminal-net radius, then every skeleton point is controlled by its terminal projection plus terminalError.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.terminalApprox_of_pathwise_modulus_radiusBound {Ω : Type u_1} {T : Type u_2} {A : Type u_3} {K : Type u_4} [Fintype A] (N : FiniteNet T A) (embed : KT) (Y : ΩT) (radiusBound terminalError : ) (hradius : N.radius radiusBound) (hmodulus : ∀ (ω : Ω) (s t : T), N.dist s t radiusBoundY ω s Y ω t + terminalError) (ω : Ω) (k : K) :
                      Y ω (embed k) Y ω (N.projection (embed k)) + terminalError

                      Terminal-projection approximation from a pathwise modulus at a larger radius budget. This is useful when the modulus is stated with a named radius bound rather than the exact net radius.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteSup_le_skeletonSup_add_of_pointwise_approx {T : Type u_2} [Fintype T] [Nonempty T] {K : Type u_4} [Fintype K] [Nonempty K] (embed : KT) (nearest : TK) (Y : T) (skeletonError : ) (happrox : ∀ (t : T), Y t Y (embed (nearest t)) + skeletonError) :
                      finiteSup Y (finiteSup fun (k : K) => Y (embed k)) + skeletonError

                      Finite dense-skeleton approximation for a finite ambient supremum.

                      If every ambient point is controlled by a selected skeleton point up to skeletonError, then the finite supremum over the ambient type is controlled by the finite skeleton supremum plus the same error. This is a finite, measurability-free version of the dense-net step.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.supFunctional_le_skeletonSup_add_of_witnessed_pointwise_approx {Ω : Type u_1} {T : Type u_2} {K : Type u_4} [Fintype K] [Nonempty K] (embed : KT) (nearest : TK) (Y : ΩT) (supFunctional : Ω) (witness : ΩT) (witnessError skeletonError : ) (hwitness : ∀ (ω : Ω), supFunctional ω Y ω (witness ω) + witnessError) (happrox : ∀ (ω : Ω) (t : T), Y ω t Y ω (embed (nearest t)) + skeletonError) (ω : Ω) :
                      supFunctional ω (finiteSup fun (k : K) => Y ω (embed k)) + (witnessError + skeletonError)

                      Finite-skeleton approximation for a caller-supplied supremum functional.

                      The caller supplies an approximate maximizer witness : Ω → T for the scalar supFunctional, and a finite skeleton selector nearest : T → K. If the witness is within witnessError of the supplied supremum and every ambient point is within skeletonError of its skeleton representative, then hseparable follows with error witnessError + skeletonError.

                      This avoids defining an arbitrary measurable supremum: all continuous content is exposed as explicit witness and finite-skeleton hypotheses.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_sum_range {Ω : Type u_1} [Fintype Ω] (p : Ω) (Y : Ω) (m : ) :
                      (finiteExpectation p fun (ω : Ω) => jFinset.range m, Y j ω) = jFinset.range m, finiteExpectation p fun (ω : Ω) => Y j ω

                      Pull a finite sum through finite weighted expectation.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_sum {Ω : Type u_1} {A : Type u_3} [Fintype Ω] [Fintype A] (p : Ω) (Y : AΩ) :
                      (finiteExpectation p fun (ω : Ω) => a : A, Y a ω) = a : A, finiteExpectation p fun (ω : Ω) => Y a ω

                      Pull a finite sum over an arbitrary finite index type through finite weighted expectation.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finiteExpectation_exp_shift {Ω : Type u_1} [Fintype Ω] (p Z : Ω) (lam c : ) :
                      (finiteExpectation p fun (ω : Ω) => Real.exp (lam * (Z ω - c))) = Real.exp (-(lam * c)) * finiteExpectation p fun (ω : Ω) => Real.exp (lam * Z ω)

                      Shift an exponential inside finite weighted expectation.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.expectation_le_of_shifted_exp_mgf {Ω : Type u_1} [Fintype Ω] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (Z : Ω) (lam budget : ) (hlam : 0 < lam) (hmgf : (finiteExpectation p fun (ω : Ω) => Real.exp (lam * (Z ω - budget))) 1) :

                      A shifted exponential-moment bound controls the finite weighted mean. This is the elementary Chernoff step used below to convert finite-max MGF control into an expected-supremum budget.

                      Multiscale chaining decomposition #

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.exp_finiteSup_sub_le_sum_exp_sub {T : Type u_2} [Fintype T] [Nonempty T] (Y : T) (lam budget : ) :
                      Real.exp (lam * (finiteSup Y - budget)) t : T, Real.exp (lam * (Y t - budget))

                      For a finite index set, the exponential of the finite maximum is bounded by the sum of coordinate exponentials.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_expectedSup_le_of_shifted_mgf {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (Y : ΩT) (lam budget : ) (hlam : 0 < lam) (hcoord : ∀ (t : T), (finiteExpectation p fun (ω : Ω) => Real.exp (lam * (Y ω t - budget))) (↑(Fintype.card T))⁻¹) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup (Y ω)) budget

                      Finite-max entropy budget from shifted coordinate MGF bounds. If each coordinate has shifted exponential moment at most 1 / |T|, then the expected finite supremum is at most budget.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_expectedSup_le_of_mgf_log {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (Y : ΩT) (lam q : ) (hlam : 0 < lam) (hcoord : ∀ (t : T), (finiteExpectation p fun (ω : Ω) => Real.exp (lam * Y ω t)) Real.exp q) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup (Y ω)) (Real.log (Fintype.card T) + q) / lam

                      Finite-max entropy bound from coordinate MGF control. If every coordinate has moment generating function at most exp q at a fixed positive λ, then the expected finite supremum is bounded by (log |T| + q) / λ.

                      This is the standalone finite-index bridge from an MGF condition to an expected-supremum budget; later chaining theorems apply it to projection increments.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.sqrt_entropy_optimizer_identity {L q : } (hL : 0 < L) (hq : 0 < q) :
                      (L + (2 * L / q) ^ 2 * q / 2) / (2 * L / q) = (2 * q * L)

                      Optimizing L / λ + λq / 2 at λ = sqrt (2L/q), written in the algebraic form used by the finite sub-Gaussian max bound.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.sqrt_entropy_scale_eq (variance radius entropy : ) (hvariance_nonneg : 0 variance) (hradius_nonneg : 0 radius) :
                      (2 * variance * radius ^ 2 * entropy) = (2 * variance) * radius * entropy

                      Pull the finite entropy term out of the square root in the form used by the Dudley-style finite entropy-sum corollaries. The radius parameter is a finite net radius or a sum of adjacent finite net radii, not a limiting scale.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_expectedSup_le_of_subGaussian_mgf_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (Y : ΩT) (variance : ) (hvariance : 0 < variance) (hcoord : ∀ (t : T) (lam : ), (finiteExpectation p fun (ω : Ω) => Real.exp (lam * Y ω t)) Real.exp (lam ^ 2 * variance / 2)) (hcard : 1 < Fintype.card T) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup (Y ω)) (2 * variance * Real.log (Fintype.card T))

                      Optimized finite sub-Gaussian max bound from coordinate MGF control. If each coordinate satisfies E exp(λ Y_t) ≤ exp(λ²σ²/2) for every λ, then the expected supremum over the finite index type is at most sqrt (2σ² log |T|).

                      This is finite-index and finite-support only; it is the entropy-budget lemma that feeds the later multiscale chaining statements.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.real_le_of_forall_pos_le_add {x y : } (h : ∀ (eta : ), 0 < etax y + eta) :
                      x y

                      Real-order closure for bounds with arbitrary positive slack.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_expectedSup_le_of_subGaussian_mgf_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (hsum : ω : Ω, p ω = 1) (Y : ΩT) (variance : ) (hvariance : 0 < variance) (hcoord : ∀ (t : T) (lam : ), (finiteExpectation p fun (ω : Ω) => Real.exp (lam * Y ω t)) Real.exp (lam ^ 2 * variance / 2)) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup (Y ω)) (2 * variance * Real.log (Fintype.card T))

                      Optimized finite sub-Gaussian max bound, including singleton index families.

                      The existing square-root optimizer needs 1 < Fintype.card T so that log |T| > 0. This wrapper keeps that branch unchanged and adds the singleton case. When |T| = 1, the log-cardinality bound is available for every positive λ; sending λ to zero through arbitrary positive slack gives the zero entropy bound. This is the finite max brick needed before dyadic chaining can allow singleton projection-pair layers.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.chain_telescope_to_projection {T : Type u_2} (X : T) (π : TT) (m : ) (t : T) :
                      X (π m t) = X (π 0 t) + jFinset.range m, (X (π (j + 1) t) - X (π j t))

                      Telescoping identity for a chain of projections. The projection sequence is indexed by natural-number levels; level 0 is the coarse approximation and level m is the terminal approximation.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.chain_telescope_to_projection_over {T : Type u_2} {U : Type u_4} (X : T) (π : UT) (m : ) (u : U) :
                      X (π m u) = X (π 0 u) + jFinset.range m, (X (π (j + 1) u) - X (π j u))

                      Telescoping identity for a projection chain parameterized by an arbitrary finite domain. The process is still indexed by T; the chain is evaluated along a finite parameter type such as a projected net image.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.chain_telescope {T : Type u_2} (X : T) (π : TT) (m : ) (t : T) (hlast : π m t = t) :
                      X t = X (π 0 t) + jFinset.range m, (X (π (j + 1) t) - X (π j t))

                      Telescoping identity when the final projection is the original point.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_chaining_decomposition {T : Type u_2} [Fintype T] [Nonempty T] (X : T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) :
                      finiteSup X (finiteSup fun (t : T) => X (π 0 t)) + jFinset.range m, finiteSup fun (t : T) => X (π (j + 1) t) - X (π j t)

                      Pointwise finite multiscale chaining: the supremum of a process is bounded by the supremum at the coarse projection plus the sum of suprema of scale increments.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_chaining_expectation_bound {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (X : ΩT) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (budget : ) (hbudget : jFinset.range m, (finiteExpectation p fun (ω : Ω) => finiteSup fun (t : T) => X ω (π (j + 1) t) - X ω (π j t)) budget j) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup (X ω)) (finiteExpectation p fun (ω : Ω) => finiteSup fun (t : T) => X ω (π 0 t)) + jFinset.range m, budget j

                      Finite weighted-expectation chaining bound. If every scale increment has expected finite supremum at most budget j, then the expected supremum of the full finite process is bounded by the expected coarse supremum plus the sum of the scale budgets.

                      This is the finite-process scaffold that later sub-Gaussian increment estimates feed into; it is not the continuous Dudley entropy integral.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_projected_chaining_decomposition {T : Type u_2} [Fintype T] [Nonempty T] (X : T) (π : TT) (m : ) :
                      (finiteSup fun (t : T) => X (π m t)) (finiteSup fun (t : T) => X (π 0 t)) + jFinset.range m, finiteSup fun (t : T) => X (π (j + 1) t) - X (π j t)

                      Pointwise finite projected chaining. This is the same finite telescoping bookkeeping as finite_chaining_decomposition, but it stops at the terminal projection π m instead of requiring π m t = t.

                      This is the finite projected-supremum scaffold used before passing to a continuous or measurable supremum.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_projected_chaining_expectation_bound {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (X : ΩT) (π : TT) (m : ) (budget : ) (hbudget : jFinset.range m, (finiteExpectation p fun (ω : Ω) => finiteSup fun (t : T) => X ω (π (j + 1) t) - X ω (π j t)) budget j) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup fun (t : T) => X ω (π m t)) (finiteExpectation p fun (ω : Ω) => finiteSup fun (t : T) => X ω (π 0 t)) + jFinset.range m, budget j

                      Finite weighted-expectation projected chaining bound. It bounds the expected supremum over the terminal projection π m, without assuming that the terminal projection is the identity.

                      This is intentionally finite-index and finite-scale. It does not construct a measurable supremum over an arbitrary class.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_projected_chaining_decomposition_over {T : Type u_2} {U : Type u_4} [Fintype U] [Nonempty U] (X : T) (π : UT) (m : ) :
                      (finiteSup fun (u : U) => X (π m u)) (finiteSup fun (u : U) => X (π 0 u)) + jFinset.range m, finiteSup fun (u : U) => X (π (j + 1) u) - X (π j u)

                      Pointwise projected chaining over an arbitrary finite parameter domain. The process itself may be indexed by an ambient type T; only the parameter domain U over which the projected supremum is taken must be finite.

                      This is the finite-image bridge used to avoid assuming [Fintype T] for projected finite-net suprema.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.finite_projected_chaining_expectation_bound_over {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {U : Type u_4} [Fintype U] [Nonempty U] (p : Ω) (hp : ∀ (ω : Ω), 0 p ω) (X : ΩT) (π : UT) (m : ) (budget : ) (hbudget : jFinset.range m, (finiteExpectation p fun (ω : Ω) => finiteSup fun (u : U) => X ω (π (j + 1) u) - X ω (π j u)) budget j) :
                      (finiteExpectation p fun (ω : Ω) => finiteSup fun (u : U) => X ω (π m u)) (finiteExpectation p fun (ω : Ω) => finiteSup fun (u : U) => X ω (π 0 u)) + jFinset.range m, budget j

                      Finite weighted-expectation projected chaining over an arbitrary finite parameter domain U. The ambient process index type T need not be finite.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (budget : ) (hbudget : jFinset.range m, (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π (j + 1) t) - P.X ω (π j t)) budget j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, budget j

                      Chaining bound specialized to a finite sub-Gaussian process record. The sub-Gaussian MGF field is carried by P; the present theorem consumes the finite expected-sup budgets for each scale, which later entropy lemmas will derive from that MGF condition.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (budget : ) (hbudget : jFinset.range m, (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π (j + 1) t) - P.X ω (π j t)) budget j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π m t)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, budget j

                      Projected chaining bound specialized to a finite sub-Gaussian process. The left side is the expected finite supremum over the terminal projection π m, so no identity-terminal assumption is required.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_over {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {U : Type u_4} [Fintype U] [Nonempty U] (P : FiniteSubGaussianProcess Ω T) (π : UT) (m : ) (budget : ) (hbudget : jFinset.range m, (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π (j + 1) u) - P.X ω (π j u)) budget j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π m u)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π 0 u)) + jFinset.range m, budget j

                      Projected chaining bound for a finite parameter domain U, specialized to a finite sub-Gaussian process over an ambient index type T. This is the version used for projected finite-net images when T itself is not finite.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.projection_increment_expectedSup_le_of_radius {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (j : ) (lam r budget : ) (hlam : 0 < lam) (hr : ∀ (t : T), P.dist (π j t) (π (j + 1) t) r) (hr_nonneg : 0 r) (hbudget : Real.exp (lam ^ 2 * P.varianceProxy * r ^ 2 / 2 - lam * budget) (↑(Fintype.card T))⁻¹) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π (j + 1) t) - P.X ω (π j t)) budget

                      Expected supremum budget for one projection-increment level of a finite sub-Gaussian process. The hypothesis exp(λ²σ²r²/2 - λ·budget) ≤ 1 / |T| is the finite entropy accounting step: the radius-bounded sub-Gaussian MGF leaves enough room for a union bound over the finite index type.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.projection_increment_expectedSup_le_of_radius_log {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (j : ) (lam r : ) (hlam : 0 < lam) (hr : ∀ (t : T), P.dist (π j t) (π (j + 1) t) r) (hr_nonneg : 0 r) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π (j + 1) t) - P.X ω (π j t)) (Real.log (Fintype.card T) + lam ^ 2 * P.varianceProxy * r ^ 2 / 2) / lam

                      Log-cardinality version of projection_increment_expectedSup_le_of_radius. This is the finite sub-Gaussian max bound for one projection-increment level: E sup_t Δ_j(t) ≤ (log |T| + λ²σ²r²/2) / λ.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.projection_increment_expectedSup_le_of_radius_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (j : ) (r : ) (hvariance : 0 < P.varianceProxy) (hr : ∀ (t : T), P.dist (π j t) (π (j + 1) t) r) (hr_pos : 0 < r) (hcard : 1 < Fintype.card T) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π (j + 1) t) - P.X ω (π j t)) (2 * P.varianceProxy * r ^ 2 * Real.log (Fintype.card T))

                      Square-root version of the one-level finite sub-Gaussian max bound, obtained by optimizing the positive λ parameter in projection_increment_expectedSup_le_of_radius_log.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.projection_increment_expectedSup_le_of_radius_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (j : ) (r : ) (hvariance : 0 < P.varianceProxy) (hr : ∀ (t : T), P.dist (π j t) (π (j + 1) t) r) (hr_pos : 0 < r) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π (j + 1) t) - P.X ω (π j t)) (2 * P.varianceProxy * r ^ 2 * Real.log (Fintype.card T))

                      Square-root projection-increment bound, including singleton index families.

                      This is the projection-increment form of finite_expectedSup_le_of_subGaussian_mgf_sqrt_nonempty. It removes the 1 < card side condition from the one-level bound; singleton projection families pay zero entropy.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.increment_family_expectedSup_le_of_radius_log {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {I : Type u_4} [Fintype I] [Nonempty I] (P : FiniteSubGaussianProcess Ω T) (left right : IT) (lam r : ) (hlam : 0 < lam) (hr : ∀ (i : I), P.dist (left i) (right i) r) (hr_nonneg : 0 r) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (i : I) => P.X ω (right i) - P.X ω (left i)) (Real.log (Fintype.card I) + lam ^ 2 * P.varianceProxy * r ^ 2 / 2) / lam

                      Log-cardinality finite-max bound for an arbitrary finite family of sub-Gaussian increments. The index family I is finite but otherwise abstract; this is still a finite-sample, finite-class statement, not a measurable separability or Talagrand contraction theorem.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.increment_family_expectedSup_le_of_radius_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {I : Type u_4} [Fintype I] [Nonempty I] (P : FiniteSubGaussianProcess Ω T) (left right : IT) (r : ) (hvariance : 0 < P.varianceProxy) (hr : ∀ (i : I), P.dist (left i) (right i) r) (hr_pos : 0 < r) (hcard : 1 < Fintype.card I) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (i : I) => P.X ω (right i) - P.X ω (left i)) (2 * P.varianceProxy * r ^ 2 * Real.log (Fintype.card I))

                      Optimized square-root finite-max bound for an arbitrary finite family of sub-Gaussian increments: E sup_i (X_{right i} - X_{left i}) ≤ sqrt(2 σ² r² log |I|). The theorem is deliberately finite-index and finite-family.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.increment_family_expectedSup_le_of_radius_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {I : Type u_4} [Fintype I] [Nonempty I] (P : FiniteSubGaussianProcess Ω T) (left right : IT) (r : ) (hvariance : 0 < P.varianceProxy) (hr : ∀ (i : I), P.dist (left i) (right i) r) (hr_pos : 0 < r) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (i : I) => P.X ω (right i) - P.X ω (left i)) (2 * P.varianceProxy * r ^ 2 * Real.log (Fintype.card I))

                      Square-root finite-max bound for an arbitrary finite family of sub-Gaussian increments, including singleton families.

                      This removes the 1 < card side condition from increment_family_expectedSup_le_of_radius_sqrt; singleton increment families pay zero entropy through finite_expectedSup_le_of_subGaussian_mgf_sqrt_nonempty.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_radius_budgets {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (lam : ) (hlam : 0 < lam) (radius budget : ) (hradius_nonneg : jFinset.range m, 0 radius j) (hradius : jFinset.range m, ∀ (t : T), P.dist (π j t) (π (j + 1) t) radius j) (hbudget : jFinset.range m, Real.exp (lam ^ 2 * P.varianceProxy * radius j ^ 2 / 2 - lam * budget j) (↑(Fintype.card T))⁻¹) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, budget j

                      Finite chaining bound with radius/MGF-derived scale budgets. Each scale budget is justified by a radius bound and the finite entropy condition exp(λ²σ²r_j²/2 - λ·budget_j) ≤ 1 / |T|; the existing chaining theorem then sums those budgets.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_radius_log {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (lam : ) (hlam : 0 < lam) (radius : ) (hradius_nonneg : jFinset.range m, 0 radius j) (hradius : jFinset.range m, ∀ (t : T), P.dist (π j t) (π (j + 1) t) radius j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, (Real.log (Fintype.card T) + lam ^ 2 * P.varianceProxy * radius j ^ 2 / 2) / lam

                      Log-cardinality finite chaining bound. Radius-bounded sub-Gaussian projection increments yield the explicit finite entropy budget (log |T| + λ²σ²r_j²/2) / λ at each scale, and the finite chaining theorem sums those budgets.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_radius_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (hvariance : 0 < P.varianceProxy) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (t : T), P.dist (π j t) (π (j + 1) t) radius j) (hcard : 1 < Fintype.card T) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card T))

                      Square-root finite chaining bound. This is the optimized finite-index sub-Gaussian chaining form for radius-bounded projection increments.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_increment_families_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (hvariance : 0 < P.varianceProxy) (I : Type u_4) [(j : ) → Fintype (I j)] [∀ (j : ), Nonempty (I j)] (left right : (j : ) → I jT) (select : (j : ) → TI j) (hleft : jFinset.range m, ∀ (t : T), left j (select j t) = π j t) (hright : jFinset.range m, ∀ (t : T), right j (select j t) = π (j + 1) t) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (i : I j), P.dist (left j i) (right j i) radius j) (hcard : jFinset.range m, 1 < Fintype.card (I j)) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card (I j)))

                      Finite chaining with an explicit finite increment family at each scale.

                      For each level j, the maps left j, right j describe a finite family of candidate increments indexed by I j, and select j says every projection increment in the chain is represented in that finite family. The result combines finite chaining with the finite-max sub-Gaussian entropy budget sqrt(2 σ² r_j² log |I_j|).

                      This is a finite-sample, finite-index chaining theorem; it is a tutorial-grade stepping stone toward Dudley-style arguments, not a continuous entropy integral.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_increment_families_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hlast : ∀ (t : T), π m t = t) (hvariance : 0 < P.varianceProxy) (I : Type u_4) [(j : ) → Fintype (I j)] [∀ (j : ), Nonempty (I j)] (left right : (j : ) → I jT) (select : (j : ) → TI j) (hleft : jFinset.range m, ∀ (t : T), left j (select j t) = π j t) (hright : jFinset.range m, ∀ (t : T), right j (select j t) = π (j + 1) t) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (i : I j), P.dist (left j i) (right j i) radius j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card (I j)))

                      Finite chaining with explicit finite increment families, including singleton increment families at any scale. Singleton families pay zero entropy.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_of_increment_families_sqrt_over {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {U : Type u_4} [Fintype U] [Nonempty U] (P : FiniteSubGaussianProcess Ω T) (π : UT) (m : ) (hvariance : 0 < P.varianceProxy) (I : Type u_5) [(j : ) → Fintype (I j)] [∀ (j : ), Nonempty (I j)] (left right : (j : ) → I jT) (select : (j : ) → UI j) (hleft : jFinset.range m, ∀ (u : U), left j (select j u) = π j u) (hright : jFinset.range m, ∀ (u : U), right j (select j u) = π (j + 1) u) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (i : I j), P.dist (left j i) (right j i) radius j) (hcard : jFinset.range m, 1 < Fintype.card (I j)) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π m u)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π 0 u)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card (I j)))

                      Projected finite chaining over a finite parameter domain U, with an explicit finite increment family at each scale. The process is indexed by an ambient type T, which need not be finite.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_of_increment_families_sqrt_over_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] {U : Type u_4} [Fintype U] [Nonempty U] (P : FiniteSubGaussianProcess Ω T) (π : UT) (m : ) (hvariance : 0 < P.varianceProxy) (I : Type u_5) [(j : ) → Fintype (I j)] [∀ (j : ), Nonempty (I j)] (left right : (j : ) → I jT) (select : (j : ) → UI j) (hleft : jFinset.range m, ∀ (u : U), left j (select j u) = π j u) (hright : jFinset.range m, ∀ (u : U), right j (select j u) = π (j + 1) u) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (i : I j), P.dist (left j i) (right j i) radius j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π m u)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : U) => P.X ω (π 0 u)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card (I j)))

                      Projected finite chaining over a finite parameter domain, including singleton increment families at any scale.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_of_increment_families_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hvariance : 0 < P.varianceProxy) (I : Type u_4) [(j : ) → Fintype (I j)] [∀ (j : ), Nonempty (I j)] (left right : (j : ) → I jT) (select : (j : ) → TI j) (hleft : jFinset.range m, ∀ (t : T), left j (select j t) = π j t) (hright : jFinset.range m, ∀ (t : T), right j (select j t) = π (j + 1) t) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (i : I j), P.dist (left j i) (right j i) radius j) (hcard : jFinset.range m, 1 < Fintype.card (I j)) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π m t)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card (I j)))

                      Projected finite chaining with an explicit finite increment family at each scale. This version bounds the terminal projected supremum and therefore does not require the final projection to be the identity.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_of_increment_families_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (π : TT) (m : ) (hvariance : 0 < P.varianceProxy) (I : Type u_4) [(j : ) → Fintype (I j)] [∀ (j : ), Nonempty (I j)] (left right : (j : ) → I jT) (select : (j : ) → TI j) (hleft : jFinset.range m, ∀ (t : T), left j (select j t) = π j t) (hright : jFinset.range m, ∀ (t : T), right j (select j t) = π (j + 1) t) (radius : ) (hradius_pos : jFinset.range m, 0 < radius j) (hradius : jFinset.range m, ∀ (i : I j), P.dist (left j i) (right j i) radius j) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π m t)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (π 0 t)) + jFinset.range m, (2 * P.varianceProxy * radius j ^ 2 * Real.log (Fintype.card (I j)))

                      Projected finite chaining with explicit increment families, including singleton increment families at any scale.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.net_increment_expectedSup_le_pair_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] {A : Type u_4} {B : Type u_5} [Fintype A] [Fintype B] (P : FiniteSubGaussianProcess Ω T) (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist₀ : N₀.dist = P.dist) (hdist₁ : N₁.dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : 0 < N₀.radius + N₁.radius) (hcard : 1 < Fintype.card (N₀.ProjectionPair N₁)) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (N₁.projection t) - P.X ω (N₀.projection t)) (2 * P.varianceProxy * (N₀.radius + N₁.radius) ^ 2 * Real.log (Fintype.card (N₀.ProjectionPair N₁)))

                      One-step square-root entropy bound for increments between two finite-net projections, paying log of the realized projection-pair family. This is the finite-net entropy version of the one-level sub-Gaussian max bound.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.net_increment_expectedSup_le_pair_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] {A : Type u_4} {B : Type u_5} [Fintype A] [Fintype B] (P : FiniteSubGaussianProcess Ω T) (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist₀ : N₀.dist = P.dist) (hdist₁ : N₁.dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : 0 < N₀.radius + N₁.radius) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (N₁.projection t) - P.X ω (N₀.projection t)) (2 * P.varianceProxy * (N₀.radius + N₁.radius) ^ 2 * Real.log (Fintype.card (N₀.ProjectionPair N₁)))

                      One-step square-root entropy bound for increments between two finite-net projections, including singleton projection-pair families.

                      The old net_increment_expectedSup_le_pair_sqrt theorem required 1 < card ProjectionPair. This variant uses the singleton-safe finite-max bound, so collapsed projected-pair layers pay zero entropy instead of forcing a separation witness.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.net_increment_expectedSup_le_coveringNumber_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] {A : Type u_4} {B : Type u_5} [Fintype A] [Fintype B] (P : FiniteSubGaussianProcess Ω T) (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist₀ : N₀.dist = P.dist) (hdist₁ : N₁.dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : 0 < N₀.radius + N₁.radius) (hcard : 1 < Fintype.card (N₀.ProjectionPair N₁)) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (N₁.projection t) - P.X ω (N₀.projection t)) (2 * P.varianceProxy * (N₀.radius + N₁.radius) ^ 2 * Real.log (N₀.coveringNumber * N₁.coveringNumber))

                      One-step finite-net entropy bound using the product of the two finite covering numbers. This is a readable corollary of the sharper projection-pair bound.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.net_increment_expectedSup_le_coveringNumber_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] {A : Type u_4} {B : Type u_5} [Fintype A] [Fintype B] (P : FiniteSubGaussianProcess Ω T) (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist₀ : N₀.dist = P.dist) (hdist₁ : N₁.dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : 0 < N₀.radius + N₁.radius) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (N₁.projection t) - P.X ω (N₀.projection t)) (2 * P.varianceProxy * (N₀.radius + N₁.radius) ^ 2 * Real.log (N₀.coveringNumber * N₁.coveringNumber))

                      One-step finite-net entropy bound using the product of the two finite covering numbers, including singleton projection-pair families.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_net_sequence_pairs_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1)))))

                      Finite multiscale chaining for a sequence of finite nets, with each scale paying entropy for the realized projection-pair family between consecutive nets. This is a finite, scalar, finite-sample chaining statement and remains short of the continuous Dudley entropy integral.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_net_sequence_pairs_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1)))))

                      Finite multiscale chaining for a sequence of finite nets, including singleton realized projection-pair families at any scale.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_net_sequence_coveringNumbers_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Finite multiscale chaining for a sequence of finite nets, stated with the product of consecutive covering numbers at each scale. This follows from the projection-pair version plus the finite cardinality bound |pairs_j| ≤ N_j * N_{j+1}.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_chaining_expectation_bound_of_net_sequence_coveringNumbers_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Finite multiscale chaining for a sequence of finite nets, stated with products of consecutive covering numbers and allowing singleton projection-pair families.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_of_net_sequence_coveringNumbers_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N m).projection t)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Projected finite multiscale chaining for a sequence of finite nets, stated with products of consecutive covering numbers. The left side is the expected supremum after the terminal projection (N m).projection, not the full finite supremum of the original process.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_chaining_expectation_bound_of_net_sequence_coveringNumbers_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N m).projection t)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Projected finite multiscale chaining with products of consecutive covering numbers, including singleton projection-pair families.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_chaining_expectation_bound_of_net_sequence_coveringNumbers_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Projected finite multiscale chaining over the terminal finite-net image. The ambient process index type T is not assumed finite; the finite supremum ranges over the indices actually hit by the terminal net projection.

                      This is a projected-net boundary lift toward total-bounded Dudley: finite terminal image, finite scale range, scalar process, no measurable supremum over arbitrary classes.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_chaining_expectation_bound_of_net_sequence_coveringNumbers_sqrt_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) + jFinset.range m, (2 * P.varianceProxy * ((N j).radius + (N (j + 1)).radius) ^ 2 * Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Projected finite multiscale chaining over the terminal finite-net image, including singleton projection-pair families at any scale.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_projection_pairs {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + jFinset.range m, (2 * P.varianceProxy) * ((N j).radius + (N (j + 1)).radius) * (Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1)))))

                      Finite Dudley-style entropy sum over realized projection-pair families. For a finite sub-Gaussian process and a finite sequence of finite nets, the expected finite supremum is bounded by a coarse-net term plus a finite entropy sum. Each scale pays the adjacent-radius coefficient times the square root of the log-cardinality of the realized projection pairs between consecutive nets.

                      This is a finite, scalar-valued, finite-index theorem. It is not the continuous Dudley entropy integral; infinite classes, separability, and measurable suprema over arbitrary function classes remain outside this statement.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + jFinset.range m, (2 * P.varianceProxy) * ((N j).radius + (N (j + 1)).radius) * (Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Finite Dudley-style entropy sum stated with products of consecutive finite covering numbers. This is the public-facing finite entropy-sum corollary of the projection-pair theorem: each scale pays the adjacent-radius coefficient times sqrt (log (N_j * N_{j+1})).

                      The statement is intentionally finite: finite support, finite index set, finite nets, finite number of scales, and scalar real-valued processes only. It is not the continuous Dudley integral.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_projection_pairs_geometric_radius {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + jFinset.range m, (2 * P.varianceProxy) * (radiusScale / 2 ^ j) * (Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1)))))

                      Finite Dudley-style entropy sum over realized projection-pair families with an explicit geometric radius schedule. If each adjacent pair of finite nets moves by at most radiusScale / 2^j, the entropy sum can be stated using that dyadic radius budget directly.

                      This is still a finite theorem: finite support, finite index set, finitely many nets, scalar real-valued process, and a finite sum. It is a bridge from the projection-pair finite entropy sum toward a later Dudley-style integral, not a continuous entropy integral.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers_geometric_radius {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + jFinset.range m, (2 * P.varianceProxy) * (radiusScale / 2 ^ j) * (Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber))

                      Finite Dudley-style entropy sum with products of consecutive finite covering numbers and an explicit geometric radius schedule. If each adjacent pair of finite nets moves by at most radiusScale / 2^j, each scale pays that dyadic radius budget times the square root of the log product of adjacent finite covering numbers.

                      The statement is intentionally finite; continuous Dudley, infinite classes, separability, and measurability of arbitrary suprema remain outside this statement.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_projection_pairs_geometric_entropy_budget {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (entropyBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1))))) entropyBudget j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + jFinset.range m, (2 * P.varianceProxy) * (radiusScale / 2 ^ j) * entropyBudget j

                      Finite Dudley-style projection-pair entropy bound with a geometric radius schedule and an explicit per-scale entropy envelope. This packages the finite dyadic sum in a form suited for later comparison with entropy integrals: provide entropyBudget j above the square-root log-cardinality at each finite scale, and the theorem pays the finite weighted sum of those budgets.

                      This is not a continuous Dudley integral. The process, nets, index family, and number of scales are all finite.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers_geometric_entropy_budget {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (entropyBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber)) entropyBudget j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                      (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + jFinset.range m, (2 * P.varianceProxy) * (radiusScale / 2 ^ j) * entropyBudget j

                      Finite Dudley-style covering-number entropy bound with a geometric radius schedule and an explicit per-scale entropy envelope. At each finite scale, entropyBudget j upper-bounds sqrt (log (N_j * N_{j+1})); the conclusion is a finite dyadic entropy-budget sum.

                      This remains finite and scalar-valued. It is a preparation lemma for a later Dudley-style integral comparison, not an infinite-class or continuous-entropy theorem.

                      Finite dyadic geometric-series budget used by the public discrete Dudley corollaries. It records the elementary fact ∑_{j < m} 2^{-j} ≤ 2 in the same real-valued denominator form as the radius schedules below.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.dyadic_radius_eq_two_mul_annulus_width (radiusScale : ) (j : ) :
                      radiusScale / 2 ^ j = 2 * (radiusScale / 2 ^ j - radiusScale / 2 ^ (j + 1))

                      Dyadic annulus identity for the geometric radius schedule. The radius at scale j is twice the width of the dyadic annulus between scales j and j + 1. This is the elementary bridge used to rewrite finite Dudley-style dyadic sums in integral-comparison language.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.dyadic_annulus_width_nonneg {radiusScale : } (hradiusScale_nonneg : 0 radiusScale) (j : ) :
                      0 radiusScale / 2 ^ j - radiusScale / 2 ^ (j + 1)

                      Nonnegativity of dyadic annulus widths under a nonnegative top radius.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.dyadic_annulus_width_eq_two_mul_next (radiusScale : ) (j : ) :
                      radiusScale / 2 ^ j - radiusScale / 2 ^ (j + 1) = 2 * (radiusScale / 2 ^ (j + 1) - radiusScale / 2 ^ (j + 2))

                      The dyadic annulus at scale j has twice the width of the next lower annulus. This is the elementary constant-loss in the shifted integral comparison for antitone entropy profiles.

                      If a function is bounded below by a constant on an interval, then its interval integral dominates the rectangle with that height. This is a small analysis adapter used to keep the Dudley integral-comparison hypotheses explicit.

                      theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.dyadic_lowerEndpoint_mul_width_le_intervalIntegral {radiusScale : } (entropyAtRadius : ) (j : ) (hradiusScale_nonneg : 0 radiusScale) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) :
                      (radiusScale / 2 ^ (j + 1) - radiusScale / 2 ^ (j + 2)) * entropyAtRadius (radiusScale / 2 ^ (j + 1)) (ε : ) in radiusScale / 2 ^ (j + 2)..radiusScale / 2 ^ (j + 1), entropyAtRadius ε

                      For an antitone entropy profile, the value at the upper endpoint of a shifted dyadic annulus is a lower bound throughout that annulus, so the corresponding rectangle is bounded by the interval integral over the annulus.

                      This is finite-scale analysis only; it does not assert a continuous Dudley integral or any measurable-supremum theorem.

                      Finite dyadic entropy-integral budget. This is an upper Riemann-style sum over dyadic annuli, not a continuous Dudley entropy integral. The term at scale j is the annulus width radiusScale / 2^j - radiusScale / 2^(j+1) times a supplied finite entropy envelope.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        One-step dyadic entropy budget for a constant entropy envelope.

                        Finite dyadic entropy-at-radius upper sum. The value entropyAtRadius (radiusScale / 2^(j+1)) is sampled at the lower endpoint of the dyadic annulus (radiusScale / 2^(j+1), radiusScale / 2^j].

                        This is a finite Riemann-style upper sum used as an interface to later entropy-integral estimates. It is not a definition of a continuous integral.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finiteDyadicEntropyAtRadiusUpperSum_le_two_mul_shifted_intervalIntegral_sum {radiusScale : } (m : ) (entropyAtRadius : ) (hradiusScale_nonneg : 0 radiusScale) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) :
                          finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius 2 * jFinset.range m, (ε : ) in radiusScale / 2 ^ (j + 2)..radiusScale / 2 ^ (j + 1), entropyAtRadius ε

                          Analytic domination of the finite dyadic entropy-at-radius upper sum by a finite shifted-annulus interval-integral budget.

                          For antitone entropy profiles, the lower-endpoint upper sum on annulus j is controlled by twice the interval integral over annulus j + 1. The theorem is therefore a finite dyadic Riemann-step bridge toward Dudley-style integral language. It is not a continuous Dudley integral theorem, does not involve separability, and does not claim measurable suprema over arbitrary classes.

                          theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finiteDyadicEntropyAtRadiusUpperSum_le_two_mul_intervalIntegralBudget {radiusScale : } (m : ) (entropyAtRadius : ) (integralBudget : ) (hradiusScale_nonneg : 0 radiusScale) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hintegralBudget : jFinset.range m, (ε : ) in radiusScale / 2 ^ (j + 2)..radiusScale / 2 ^ (j + 1), entropyAtRadius ε integralBudget) :
                          finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius 2 * integralBudget

                          Scalar-budget wrapper for the shifted-annulus interval-integral comparison. The caller supplies the finite integral budget, which later can be discharged from a true continuous entropy-integral estimate.

                          This theorem remains finite-scale and finite-sum; it is the analytic domination layer needed before a continuous Dudley wrapper can be stated.

                          theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.shiftedDyadicIntervalIntegrable_truncated {radiusScale : } (m : ) (entropyAtRadius : ) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) :
                          IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (m + 1)) (radiusScale / 2)

                          The shifted dyadic annuli used by finiteDyadicEntropyAtRadiusUpperSum_le_two_mul_shifted_intervalIntegral_sum compose into one truncated interval. This is a finite adjacent-interval identity only: it does not assert any continuous Dudley theorem, separability statement, or measurable supremum over an arbitrary class.

                          theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.shiftedDyadicIntervalIntegralSum_eq_truncatedIntervalIntegral {radiusScale : } (m : ) (entropyAtRadius : ) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) :
                          jFinset.range m, (ε : ) in radiusScale / 2 ^ (j + 2)..radiusScale / 2 ^ (j + 1), entropyAtRadius ε = (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε

                          The finite shifted-annulus interval-integral budget is exactly the interval integral over the truncated dyadic range [radiusScale / 2^(m+1), radiusScale/2].

                          This is the analytic bookkeeping bridge from a finite dyadic annulus budget to a single truncated interval integral. It remains finite-scale and makes no continuous Dudley, separability, or arbitrary measurable-supremum claim.

                          theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finiteDyadicEntropyAtRadiusUpperSum_le_two_mul_truncatedIntervalIntegral {radiusScale : } (m : ) (entropyAtRadius : ) (hradiusScale_nonneg : 0 radiusScale) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) :
                          finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius 2 * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε

                          Finite dyadic entropy-at-radius upper sum dominated by one truncated interval integral. This composes the shifted-annulus comparison with adjacent-interval additivity.

                          The statement is deliberately finite: a finite dyadic scale range, scalar entropy profile, explicit antitonicity and interval-integrability hypotheses, and no continuous Dudley, separability, or arbitrary measurable-supremum claim.

                          Finite prefix-sup entropy envelope. At scale j, this records the maximum of the first j + 1 scale budgets. It is a finite, discrete monotone envelope; it is not a continuous metric-entropy function.

                          Equations
                          Instances For

                            The finite prefix-sup envelope of a constant scale budget is constant.

                            Each scale budget is bounded by its finite prefix-sup envelope.

                            A monotone finite scale budget is already equal to its prefix-sup envelope.

                            The finite prefix-sup envelope is monotone in the scale index.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finiteDyadicEntropyIntegralBudget_le_entropyAtRadiusUpperSum {radiusScale : } (m : ) (entropyEnvelope : ) (entropyAtRadius : ) (hradiusScale_nonneg : 0 radiusScale) (hentropyAtRadius : jFinset.range m, entropyEnvelope j entropyAtRadius (radiusScale / 2 ^ (j + 1))) :
                            finiteDyadicEntropyIntegralBudget radiusScale m entropyEnvelope finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius

                            Compare the finite dyadic entropy budget with an entropy-at-radius upper sum. The hypothesis only samples the external entropy envelope at the lower dyadic endpoint for each finite annulus.

                            This is a finite upper-sum comparison, not a continuous Dudley integral theorem and not an infinite-class statement.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finiteDyadicEntropyIntegralBudget_le_of_entropyAtRadiusUpperSum_le {radiusScale : } (m : ) (entropyEnvelope : ) (entropyAtRadius : ) (integralBudget : ) (hradiusScale_nonneg : 0 radiusScale) (hentropyAtRadius : jFinset.range m, entropyEnvelope j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hupperSum : finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius integralBudget) :
                            finiteDyadicEntropyIntegralBudget radiusScale m entropyEnvelope integralBudget

                            Compare the finite dyadic entropy budget with a supplied scalar upper budget. A later analytic layer can discharge hupperSum from an actual entropy-integral estimate; this theorem itself remains finite and discrete.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_projection_pairs_geometric_uniform_entropy {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale entropyCap : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hentropyCap_nonneg : 0 entropyCap) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1))))) entropyCap) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * radiusScale * entropyCap

                            Finite discrete Dudley-style projection-pair bound with a uniform entropy cap across dyadic scales. If every scale's projection-pair entropy term is at most entropyCap, the finite dyadic entropy-budget sum is bounded by the geometric-series budget 2 * sqrt(2σ²) * radiusScale * entropyCap.

                            This is still finite-index, finite-net, and scalar-valued. It is a discrete finite entropy bound, not a continuous entropy integral.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers_geometric_uniform_entropy {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale entropyCap : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hentropyCap_nonneg : 0 entropyCap) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber)) entropyCap) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * radiusScale * entropyCap

                            Finite discrete Dudley-style covering-number bound with a uniform entropy cap across dyadic scales. If sqrt (log (N_j * N_{j+1})) ≤ entropyCap at every finite scale, the dyadic covering-number entropy sum is bounded by 2 * sqrt(2σ²) * radiusScale * entropyCap.

                            This is the finite discrete refinement of the entropy-budget wrapper. It does not introduce a continuous entropy integral or infinite-class assumptions.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_projection_pairs_geometric_annulus_budget {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (entropyBudget annulusBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1))))) entropyBudget j) (hannulus : jFinset.range m, (radiusScale / 2 ^ j - radiusScale / 2 ^ (j + 1)) * entropyBudget j annulusBudget j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * jFinset.range m, annulusBudget j

                            Finite discrete Dudley-style projection-pair bound rewritten through dyadic annulus budgets. The hypothesis hannulus says each scale's annulus width * entropyBudget is bounded by an explicit finite budget; the conclusion pays 2 * sqrt(2σ²) times the finite sum of those budgets.

                            This is an integral-comparison bridge for the finite chaining scaffold. It is not a continuous entropy integral and does not introduce infinite classes, separability assumptions, or arbitrary measurable suprema.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers_geometric_annulus_budget {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (entropyBudget annulusBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber)) entropyBudget j) (hannulus : jFinset.range m, (radiusScale / 2 ^ j - radiusScale / 2 ^ (j + 1)) * entropyBudget j annulusBudget j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * jFinset.range m, annulusBudget j

                            Finite discrete Dudley-style covering-number bound rewritten through dyadic annulus budgets. This is the covering-number version of finite_dudley_entropy_sum_projection_pairs_geometric_annulus_budget.

                            The theorem remains finite: finite outcome support, finite index class, finite nets, scalar-valued process, and a finite dyadic scale range.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_projection_pairs_geometric_integral_budget {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (entropyBudget entropyEnvelope : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log (Fintype.card ((N j).ProjectionPair (N (j + 1))))) entropyBudget j) (henvelope : jFinset.range m, entropyBudget j entropyEnvelope j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget radiusScale m entropyEnvelope

                            Finite discrete Dudley-style projection-pair bound controlled by a finite dyadic entropy-integral budget. The supplied entropyEnvelope dominates each finite projection-pair entropy term, and the conclusion pays the finite upper Riemann-style annulus sum finiteDyadicEntropyIntegralBudget radiusScale m entropyEnvelope.

                            This is still finite-index, finite-net, scalar-valued chaining. It is a bridge toward Dudley-style integral language, not the continuous Dudley integral and not an infinite-class theorem.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers_geometric_integral_budget {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (entropyBudget entropyEnvelope : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hentropy : jFinset.range m, (Real.log ((N j).coveringNumber * (N (j + 1)).coveringNumber)) entropyBudget j) (henvelope : jFinset.range m, entropyBudget j entropyEnvelope j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget radiusScale m entropyEnvelope

                            Finite discrete Dudley-style covering-number bound controlled by a finite dyadic entropy-integral budget. This is the covering-number version of finite_dudley_entropy_sum_projection_pairs_geometric_integral_budget.

                            The theorem remains finite: finite outcome support, finite index class, finite nets, scalar-valued process, and a finite dyadic scale range.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_dudley_entropy_sum_coveringNumbers_geometric_integral_budget_prefix_envelope {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hlast : ∀ (t : T), (N m).projection t = t) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup (P.X ω)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget radiusScale m (finitePrefixSupEnvelope fun (j : ) => (Real.log (coverCount j)))

                            Finite discrete Dudley-style covering-number bound where the entropy envelope is constructed from finite covering-number upper bounds. The coverCount j values are external finite upper bounds on the product N_j * N_{j+1} at each dyadic scale; the theorem uses their finite prefix sup as a monotone entropy envelope inside finiteDyadicEntropyIntegralBudget.

                            This is still finite-index, finite-net, scalar-valued chaining over finitely many scales. It packages the finite entropy envelope needed for the Dudley-style upper-sum wrapper; it is not a continuous Dudley integral and not an infinite-class result.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projected_dudley_entropy_sum_coveringNumbers_geometric_integral_budget_prefix_envelope {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N 0).projection t)) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω ((N m).projection t)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget radiusScale m (finitePrefixSupEnvelope fun (j : ) => (Real.log (coverCount j)))

                            Projected finite Dudley-style covering-number bound with a dyadic entropy-integral budget. The conclusion controls the finite supremum after the terminal projection (N m).projection; unlike the full finite Dudley theorem, it does not require (N m).projection t = t.

                            This remains a finite-index, finite-net, finite-scale theorem. It is a bridge toward total-bounded Dudley statements, not a continuous Dudley integral and not a measurable supremum over an arbitrary class.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_integral_budget_prefix_envelope {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget radiusScale m (finitePrefixSupEnvelope fun (j : ) => (Real.log (coverCount j)))

                            Projected finite-net Dudley-style covering-number bound with a dyadic entropy-integral budget. The ambient index type T need not be finite: the left side ranges over the finite image of the terminal net projection.

                            This is a finite-image, finite-scale bridge toward total-bounded Dudley statements. It does not assert a continuous Dudley integral, separability, or a measurable supremum over an arbitrary class.

                            theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_integral_budget_prefix_envelope_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                            (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget radiusScale m (finitePrefixSupEnvelope fun (j : ) => (Real.log (coverCount j)))

                            Projected finite-net Dudley-style covering-number bound with a dyadic entropy-integral budget, without a nontrivial projection-pair cardinality hypothesis.

                            This variant uses the singleton-safe projected-net chaining bound. Collapsed projection-pair layers pay zero entropy in the finite chaining step, and positivity of the covering-number product follows from the nonempty ambient type and the finite-net projection maps.

                            structure FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.FiniteDyadicNetSequence {Ω : Type u_1} {T : Type u_2} [Fintype Ω] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] :
                            Type (max u_2 u_4)

                            A reusable finite dyadic net sequence for projected finite-net Dudley bounds.

                            The bundle records only finite-scale data: a sequence of finite nets, adjacent cover-count bounds, a dyadic radius scale, and the metric hypotheses needed by the chaining theorem. It does not assert total boundedness, separability, or a continuous entropy integral.

                            Instances For
                              theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.FiniteDyadicNetSequence.projectedNet_dudley_bound {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] {P : FiniteSubGaussianProcess Ω T} {A : Type u_4} [(j : ) → Fintype (A j)] (S : P.FiniteDyadicNetSequence A) (m : ) (coarseBudget : ) (hvariance : 0 < P.varianceProxy) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (S.N m).ProjectedIndex) => P.X ω ((S.N 0).projection (FiniteNet.ProjectedIndex.source (S.N m) u))) coarseBudget) :
                              (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (S.N m).ProjectedIndex) => P.X ω ((S.N m).center u)) coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget S.radiusScale m (finitePrefixSupEnvelope fun (j : ) => (Real.log (S.coverCount j)))

                              Projected finite-net Dudley bound from a bundled dyadic net sequence.

                              The conclusion is the same finite projected-net supremum controlled by finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_integral_budget_prefix_envelope, but callers instantiate one reusable sequence object instead of restating the geometry and cover-count hypotheses at every use site.

                              theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.FiniteDyadicNetSequence.supFunctional_dudley_bound {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] {P : FiniteSubGaussianProcess Ω T} {A : Type u_4} [(j : ) → Fintype (A j)] (S : P.FiniteDyadicNetSequence A) (m : ) (coarseBudget : ) (supFunctional : Ω) (terminalError : ) (hvariance : 0 < P.varianceProxy) (hterminal : ∀ (ω : Ω), supFunctional ω (finiteSup fun (u : (S.N m).ProjectedIndex) => P.X ω ((S.N m).center u)) + terminalError) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (S.N m).ProjectedIndex) => P.X ω ((S.N 0).projection (FiniteNet.ProjectedIndex.source (S.N m) u))) coarseBudget) :
                              finiteExpectation P.weight supFunctional coarseBudget + 2 * (2 * P.varianceProxy) * finiteDyadicEntropyIntegralBudget S.radiusScale m (finitePrefixSupEnvelope fun (j : ) => (Real.log (S.coverCount j))) + terminalError

                              Supplied-supremum finite-budget Dudley bound from a bundled dyadic net sequence.

                              The caller supplies the terminal finite-net approximation of supFunctional. This is the finite-budget analogue of the later integral-boundary adapters and keeps the same limitation: no arbitrary measurable supremum is constructed.

                              A reusable finite-dyadic Dudley instance for a fixed finite sub-Gaussian process.

                              This packages the data that examples otherwise repeat at every use site: the dyadic net sequence, a coarse expected-supremum budget, positivity of the variance proxy, and the proof that the terminal projected image at scale m has the stated coarse budget. Supplied suprema are optional and are packaged by FiniteDyadicDudleyInstance.SupremumAdapter.

                              Instances For

                                Optional terminal adapter from a supplied supremum functional to the terminal projected finite-net supremum of a FiniteDyadicDudleyInstance.

                                Instances For
                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_entropy_integral_comparison {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (integralBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hupperSum : finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius integralBudget) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 2 * (2 * P.varianceProxy) * integralBudget

                                  Projected finite-net Dudley-style covering-number bound compared against a finite entropy-at-radius upper-sum/integral budget. The hypothesis hentropyAtRadius says the finite prefix-sup covering envelope at scale j is controlled by an external entropy function sampled at the lower dyadic endpoint. The hypothesis hupperSum is where a later analytic layer can bound that finite upper sum by a scalar integral budget.

                                  This is still a finite-image, finite-scale theorem. It does not prove a continuous Dudley integral, separability, infinite classes, or measurable suprema over arbitrary index families.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_entropy_intervalIntegral_comparison {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (integralBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hintegralBudget : jFinset.range m, (ε : ) in radiusScale / 2 ^ (j + 2)..radiusScale / 2 ^ (j + 1), entropyAtRadius ε integralBudget) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 4 * (2 * P.varianceProxy) * integralBudget

                                  Projected finite-net Dudley-style covering-number bound with the supplied finite entropy-at-radius upper sum discharged by a shifted-annulus interval integral budget.

                                  The analytic hypotheses are explicit: entropyAtRadius is antitone, it is interval-integrable on each shifted dyadic annulus used by the comparison, and the finite sum of those annulus integrals is bounded by integralBudget. The extra factor 2 comes from comparing each dyadic upper-sum rectangle to the next lower dyadic annulus.

                                  This is still finite-image and finite-scale. It is an analytic bridge toward Dudley-style integral language, not a continuous Dudley theorem, not a separability theorem, and not a measurable arbitrary-supremum theorem.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 4 * (2 * P.varianceProxy) * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε

                                  Projected finite-net Dudley-style covering-number bound with the finite entropy-at-radius upper sum discharged by one truncated interval integral.

                                  This composes the shifted-annulus comparison with adjacent-interval additivity: the finite shifted-annulus integral budget is the integral over [radiusScale / 2^(m+1), radiusScale / 2]. The statement is still finite-image and finite-scale. It is a bridge toward continuous Dudley language, not a continuous Dudley theorem, not a separability theorem, and not a measurable arbitrary-supremum theorem.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_entropy_integral_comparison_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (integralBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hupperSum : finiteDyadicEntropyAtRadiusUpperSum radiusScale m entropyAtRadius integralBudget) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 2 * (2 * P.varianceProxy) * integralBudget

                                  Projected finite-net Dudley-style covering-number bound compared against a supplied finite entropy-at-radius budget, including singleton projection-pair families.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_entropy_intervalIntegral_comparison_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (integralBudget : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hintegralBudget : jFinset.range m, (ε : ) in radiusScale / 2 ^ (j + 2)..radiusScale / 2 ^ (j + 1), entropyAtRadius ε integralBudget) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 4 * (2 * P.varianceProxy) * integralBudget

                                  Projected finite-net Dudley-style covering-number bound with a shifted annulus integral budget, including singleton projection-pair families.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_projectedNet_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) coarseBudget + 4 * (2 * P.varianceProxy) * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε

                                  Projected finite-net Dudley-style covering-number bound with a single truncated interval integral, including singleton projection-pair families.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_supFunctional_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (supFunctional : Ω) (terminalError : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hterminal : ∀ (ω : Ω), supFunctional ω (finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) + terminalError) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  finiteExpectation P.weight supFunctional (coarseBudget + 4 * (2 * P.varianceProxy) * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε) + terminalError

                                  Boundary adapter from projected finite-net Dudley to a supplied supremum functional.

                                  The caller supplies supFunctional : Ω → ℝ together with the explicit terminal approximation hypothesis that it is pointwise bounded by the terminal projected finite-net supremum plus terminalError. This keeps the theorem at the finite continuous-boundary interface: no arbitrary measurable supremum, no separability theorem, and no infinite-class supremum is constructed here.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_separableSupFunctional_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] {K : Type u_4} [Fintype K] [Nonempty K] (P : FiniteSubGaussianProcess Ω T) (A : Type u_5) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (embed : KT) (supFunctional : Ω) (separabilityError terminalError : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcard : jFinset.range m, 1 < Fintype.card ((N j).ProjectionPair (N (j + 1)))) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hseparable : ∀ (ω : Ω), supFunctional ω (finiteSup fun (k : K) => P.X ω (embed k)) + separabilityError) (hterminalApprox : ∀ (ω : Ω) (k : K), P.X ω (embed k) P.X ω ((N m).projection (embed k)) + terminalError) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  finiteExpectation P.weight supFunctional (coarseBudget + 4 * (2 * P.varianceProxy) * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε) + (separabilityError + terminalError)

                                  Boundary adapter from projected finite-net Dudley to a supplied supremum functional through an explicit finite skeleton.

                                  This is the next continuous-boundary layer after finite_supFunctional_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison. Instead of asking callers to provide the final terminal approximation in one bundled hypothesis, it separates the assumptions:

                                  • hseparable bounds the supplied supremum functional by a finite skeleton, with error separabilityError;
                                  • hterminalApprox bounds each skeleton point by its terminal net projection, with error terminalError.

                                  The theorem remains finite-scale and scalar-valued. It does not construct an arbitrary measurable supremum, prove separability, or claim a full continuous Dudley theorem.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_supFunctional_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] (P : FiniteSubGaussianProcess Ω T) (A : Type u_4) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (supFunctional : Ω) (terminalError : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hterminal : ∀ (ω : Ω), supFunctional ω (finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N m).center u)) + terminalError) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  finiteExpectation P.weight supFunctional (coarseBudget + 4 * (2 * P.varianceProxy) * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε) + terminalError

                                  Boundary adapter from projected finite-net Dudley to a supplied supremum functional, including singleton projection-pair families.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.finite_separableSupFunctional_dudley_entropy_sum_coveringNumbers_geometric_entropy_truncatedIntervalIntegral_comparison_nonempty {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Nonempty T] {K : Type u_4} [Fintype K] [Nonempty K] (P : FiniteSubGaussianProcess Ω T) (A : Type u_5) [(j : ) → Fintype (A j)] (N : (j : ) → FiniteNet T (A j)) (m : ) (coarseBudget radiusScale : ) (coverCount : ) (entropyAtRadius : ) (embed : KT) (supFunctional : Ω) (separabilityError terminalError : ) (hdist : ∀ (j : ), (N j).dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradiusScale_nonneg : 0 radiusScale) (hradius_pos : jFinset.range m, 0 < (N j).radius + (N (j + 1)).radius) (hradius_geometric : jFinset.range m, (N j).radius + (N (j + 1)).radius radiusScale / 2 ^ j) (hcoverCount : jFinset.range m, (N j).coveringNumber * (N (j + 1)).coveringNumber coverCount j) (hentropyAtRadius : jFinset.range m, finitePrefixSupEnvelope (fun (j : ) => (Real.log (coverCount j))) j entropyAtRadius (radiusScale / 2 ^ (j + 1))) (hentropy_antitone : Antitone entropyAtRadius) (hintervalIntegrable : jFinset.range m, IntervalIntegrable entropyAtRadius MeasureTheory.volume (radiusScale / 2 ^ (j + 2)) (radiusScale / 2 ^ (j + 1))) (hseparable : ∀ (ω : Ω), supFunctional ω (finiteSup fun (k : K) => P.X ω (embed k)) + separabilityError) (hterminalApprox : ∀ (ω : Ω) (k : K), P.X ω (embed k) P.X ω ((N m).projection (embed k)) + terminalError) (hcoarse : (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (u : (N m).ProjectedIndex) => P.X ω ((N 0).projection (FiniteNet.ProjectedIndex.source (N m) u))) coarseBudget) :
                                  finiteExpectation P.weight supFunctional (coarseBudget + 4 * (2 * P.varianceProxy) * (ε : ) in radiusScale / 2 ^ (m + 1)..radiusScale / 2, entropyAtRadius ε) + (separabilityError + terminalError)

                                  Boundary adapter from projected finite-net Dudley to a supplied supremum functional through a finite skeleton, including singleton projection-pair families.

                                  theorem FormalSLT.Covering.FiniteSubGaussianChaining.FiniteSubGaussianProcess.net_increment_expectedSup_le_sqrt {Ω : Type u_1} {T : Type u_2} [Fintype Ω] [Fintype T] [Nonempty T] {A : Type u_4} {B : Type u_5} [Fintype A] [Fintype B] (P : FiniteSubGaussianProcess Ω T) (N₀ : FiniteNet T A) (N₁ : FiniteNet T B) (hdist₀ : N₀.dist = P.dist) (hdist₁ : N₁.dist = P.dist) (hsymm : ∀ (s t : T), P.dist s t = P.dist t s) (htri : ∀ (x y z : T), P.dist x z P.dist x y + P.dist y z) (hvariance : 0 < P.varianceProxy) (hradius_pos : 0 < N₀.radius + N₁.radius) (hcard : 1 < Fintype.card T) :
                                  (finiteExpectation P.weight fun (ω : Ω) => finiteSup fun (t : T) => P.X ω (N₁.projection t) - P.X ω (N₀.projection t)) (2 * P.varianceProxy * (N₀.radius + N₁.radius) ^ 2 * Real.log (Fintype.card T))

                                  One-step square-root entropy bound for increments between two finite-net projections. This packages the finite-net geometry lemma with the optimized sub-Gaussian max bound.