Documentation

Mathlib.Topology.EMetricSpace.PairReduction

Pair Reduction #

The goal of this file is to prove the theorem pair_reduction. This is essentially Lemma 6.1 in [KU23] which is an extension of Lemma B.2.7. in [Tal14]. Given pseudometric spaces T and E, c ≥ 0, and a finite subset J of T such that |J| ≤ aⁿ for some a ≥ 0 and n : ℕ, pair_reduction states that there exists a set K ⊆ J² such that for any function f : T → E:

  1. |K| ≤ a|J|
  2. ∀ (s, t) ∈ K, d(s, t) ≤ cn
  3. sup_{s, t ∈ J : d(s, t) ≤ c} d(f(s), f(t)) ≤ 2 sup_{(s, t) ∈ K} d(f(s), f(t))

When applying the chaining technique for bounding the supremum of the incremements of stochastic processes, pair_reduction is used to reduce the order of the dependence of the bound on the covering numbers of the pseudometric space. As a simple example of how it could be used, suppose T has an ε-covering number N and suppose J is an ε-covering of T with |J| = N. Let f : Ω → T → E be any stochastic process such that 𝔼 d(f(s), f(t)) ≤ d (s, t) for all s, t ∈ T. Then naively

  𝔼[sup_{(s, t) ∈ J} : d(s, t) ≤ c} d(f(s), f(t))]
    ≤ ∑_{(s, t) ∈ J² : d(s, t) ≤ c} 𝔼[d(f(s), f(t))]
    ≤ |J|² c
    = c N²

but applying pair_reduction with n = log |J| we get

  𝔼[sup_{(s, t) ∈ J : d(s, t) ≤ c} d(f(s), f(t))]
    ≤ 2 𝔼[sup_{(s, t) ∈ K} d(f(s), f(t))]
    ≤ 2 ∑_{(s, t) ∈ K} 𝔼[d(f(s), f(t))]
    ≤ 2 a |J| c log |J|
    ≤ 2 a c N log N

pair_reduction is used in [KU23] to prove a form of the Kolmogorov-Chentsov theorem that applies to stochastic processses which satisfy the Kolmogorov condition but works on very general metric spaces.

Implementation #

In this section we sketch a proof of pair_reduction with references to the corresponding steps in the lean code.

For any V : Finset T and t : T we define the log-size radius of t in V to be the smallest natural number k greater than zero such that |{x ∈ V | d(t, x) ≤ kc}| ≤ aᵏ. (see logSizeRadius)

We construct a sequence Vᵢ of subsets of J, a sequence tᵢ ∈ Vᵢ and a sequence of rᵢ : ℕ inductively as follows (see logSizeBallSeq):

Then Vᵢ is a strictly decreasing sequence (see card_finset_logSizeBallSeq_add_one_lt) until Vᵢ is empty. In particular Vᵢ = ∅ for i ≥ |J| (see card_finset_logSizeBallSeq_card_eq_zero).

We will show that K = ⋃_{i=1}^|J| {tᵢ} × {x ∈ Vᵢ | d(tᵢ, x) ≤ crᵢ} suffices (see pairSet and pairSetSeq).

To prove (1) we have that

  |K| ≤ ∑_{i=0}^|J| |{x ∈ Vᵢ : d(t, x) ≤ crᵢ}|
      ≤ ∑_{i=0}^|J| a ^ rᵢ  (by definition of `rᵢ`)
      = a ∑_{i=0}^|J| a ^ (rᵢ - 1)
      ≤ a ∑_{i=0}^|J| |Bᵢ| (by definition of `rᵢ`)
      ≤ a |J| (since the `Bᵢ` are disjoint (see `disjoint_smallBall_logSizeBallSeq`))

(see card_pairSet_le).

(2) follows easily from the definition of K and the fact that rᵢ ≤ n for each i (see edist_le_of_mem_pairSet and radius_logSizeBallSeq_le)

Finally we prove (3). Let s, t ∈ J such that d(s, t) ≤ c. Let i be the largest integer such that both s, t ∈ Vᵢ. WLOG suppose s ∉ Vᵢ₊₁ so that in particular s ∈ Bᵢ which means by definition that d(tᵢ, s) ≤ (rᵢ - 1)c. Then we also have

d(tᵢ, t) ≤ d(tᵢ, s) + d(s, t) ≤ (rᵢ - 1)c + c = rᵢc

hence (tᵢ, s), (tᵢ, t) ∈ K. Furthermore

d(f(s), f(t)) ≤ d(f(tᵢ), f(s)) + d(f(tᵢ), f(t))

taking supremums completes the proof (see iSup_edist_pairSet).

References #

theorem PairReduction.exists_radius_le {T : Type u_1} [PseudoEMetricSpace T] {a : ENNReal} (t : T) (V : Finset T) (ha : 1 < a) (c : ENNReal) :
∃ (r : ), 1 r {xV | edist t x r * c}.card a ^ r
noncomputable def PairReduction.logSizeRadius {T : Type u_1} [PseudoEMetricSpace T] (t : T) (V : Finset T) (a c : ENNReal) :

The log-size radius of t in V is the smallest natural number n greater than zero such that |{x ∈ V | d(t, x) ≤ nc}| ≤ aⁿ.

Equations
Instances For
    theorem PairReduction.one_le_logSizeRadius {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {V : Finset T} {t : T} (ha : 1 < a) :
    1 logSizeRadius t V a c
    theorem PairReduction.card_le_logSizeRadius_le_pow_logSizeRadius {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {V : Finset T} {t : T} (ha : 1 < a) :
    {xV | edist t x (logSizeRadius t V a c) * c}.card a ^ logSizeRadius t V a c
    theorem PairReduction.pow_logSizeRadius_le_card_le_logSizeRadius {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {V : Finset T} {t : T} (ha : 1 < a) (ht : t V) :
    a ^ (logSizeRadius t V a c - 1) {xV | edist t x ((logSizeRadius t V a c) - 1) * c}.card
    structure PairReduction.logSizeBallStruct (T : Type u_2) :
    Type u_2

    A structure for carrying the data of logSizeBallSeq

    • finset : Finset T

      The underlying finite set of a logSizeBallStruct

    • point : T

      The underlying point of a logSizeBallStruct (typically a point in the underlying finite set)

    • radius :

      The underlying radius of a logSizeBallStruct (typically the log-size radius of the underlying point in the underlying finite set)

    Instances For

      If (V, t, r) is a logSizeBallStruct then logSizeBallStruct.smallBall is {x ∈ V | d(t, x) ≤ (r - 1)c}.

      Equations
      Instances For
        noncomputable def PairReduction.logSizeBallStruct.ball {T : Type u_1} [PseudoEMetricSpace T] (struct : logSizeBallStruct T) (c : ENNReal) :

        If (V, t, r) is a logSizeBallStruct then logSizeBallStruct.ball is {x ∈ V | d(t, x) ≤ rc}.

        Equations
        Instances For
          noncomputable def PairReduction.logSizeBallSeq {T : Type u_1} [PseudoEMetricSpace T] [DecidableEq T] (J : Finset T) (hJ : J.Nonempty) (a c : ENNReal) :

          We recursively define a log-size ball sequence (Vᵢ, tᵢ, rᵢ) by

          • V₀ = J, tₒ is chosen arbitarily in J, r₀ is the log-size radius of t₀ in V₀
          • Vᵢ₊ᵢ = Vᵢ \ {x ∈ V | d(t, x) ≤ (rᵢ - 1)c}, tᵢ₊₁ is chosen arbitarily in Vᵢ₊₁, rᵢ₊₁ is the log-size radius of tᵢ₊₁ in Vᵢ₊ᵢ.
          Equations
          Instances For
            theorem PairReduction.finset_logSizeBallSeq_add_one {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (i : ) :
            (logSizeBallSeq J hJ a c (i + 1)).finset = (logSizeBallSeq J hJ a c i).finset \ (logSizeBallSeq J hJ a c i).smallBall c
            theorem PairReduction.point_logSizeBallSeq_add_one {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (i : ) :
            (logSizeBallSeq J hJ a c (i + 1)).point = if hV' : (logSizeBallSeq J hJ a c (i + 1)).finset.Nonempty then Exists.choose hV' else (logSizeBallSeq J hJ a c i).point
            theorem PairReduction.radius_logSizeBallSeq_add_one {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (i : ) :
            (logSizeBallSeq J hJ a c (i + 1)).radius = logSizeRadius (logSizeBallSeq J hJ a c (i + 1)).point (logSizeBallSeq J hJ a c (i + 1)).finset a c
            theorem PairReduction.radius_logSizeBallSeq_le {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {n : } {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (ha : 1 < a) (hn : 1 n) (hJ_card : J.card a ^ n) (i : ) :
            (logSizeBallSeq J hJ a c i).radius n
            theorem PairReduction.one_le_radius_logSizeBallSeq {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (ha : 1 < a) (i : ) :
            1 (logSizeBallSeq J hJ a c i).radius
            theorem PairReduction.disjoint_smallBall_logSizeBallSeq {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) {i j : } (hij : i j) :
            Disjoint ((logSizeBallSeq J hJ a c i).smallBall c) ((logSizeBallSeq J hJ a c j).smallBall c)
            noncomputable def PairReduction.pairSetSeq {T : Type u_1} [PseudoEMetricSpace T] [DecidableEq T] (J : Finset T) (a c : ENNReal) (n : ) :
            Finset (T × T)

            Given a log-size ball sequence (Vᵢ, tᵢ, rᵢ), we define the pair set sequence by Kᵢ = {tᵢ} × {x ∈ Vᵢ | dist(tᵢ, x) ≤ rᵢc}.

            Equations
            Instances For
              noncomputable def PairReduction.pairSet {T : Type u_1} [PseudoEMetricSpace T] [DecidableEq T] (J : Finset T) (a c : ENNReal) :
              Finset (T × T)

              Given the pair set sequence Kᵢ we define the pair set K by K = ⋃ i, Kᵢ.

              Equations
              Instances For
                theorem PairReduction.card_pairSetSeq_le_logSizeRadius_mul {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (i : ) (ha : 1 < a) :
                (pairSetSeq J a c i).card (if (logSizeBallSeq J hJ a c i).finset.Nonempty then 1 else 0) * a ^ (logSizeBallSeq J hJ a c i).radius
                theorem PairReduction.logSizeRadius_le_card_smallBall {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (hJ : J.Nonempty) (i : ) (ha : 1 < a) :
                (if (logSizeBallSeq J hJ a c i).finset.Nonempty then 1 else 0) * a ^ ((logSizeBallSeq J hJ a c i).radius - 1) ((logSizeBallSeq J hJ a c i).smallBall c).card
                theorem PairReduction.card_pairSet_le {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] (ha : 1 < a) :
                (pairSet J a c).card a * J.card
                theorem PairReduction.edist_le_of_mem_pairSet {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {n : } {J : Finset T} [DecidableEq T] (ha : 1 < a) (hJ_card : J.card a ^ n) {s t : T} (h : (s, t) pairSet J a c) :
                edist s t n * c
                theorem PairReduction.iSup_edist_pairSet {T : Type u_1} [PseudoEMetricSpace T] {a c : ENNReal} {J : Finset T} [DecidableEq T] {E : Type u_2} [PseudoEMetricSpace E] (ha : 1 < a) (f : TE) :
                ⨆ (s : { x : T // x J }), ⨆ (t : { t : { x : T // x J } // edist s t c }), edist (f s) (f t) 2 * ⨆ (p : { x : T × T // x pairSet J a c }), edist (f (↑p).1) (f (↑p).2)
                theorem EMetric.pair_reduction {T : Type u_1} [PseudoEMetricSpace T] {a : ENNReal} {n : } {J : Finset T} (hJ_card : J.card a ^ n) (c : ENNReal) (E : Type u_2) [PseudoEMetricSpace E] :
                KJ ×ˢ J, K.card a * J.card (∀ (s t : T), (s, t) Kedist s t n * c) ∀ (f : TE), ⨆ (s : { x : T // x J }), ⨆ (t : { t : { x : T // x J } // edist s t c }), edist (f s) (f t) 2 * ⨆ (p : { x : T × T // x K }), edist (f (↑p).1) (f (↑p).2)

                Pair Reduction: Given pseudometric spaces T and E, c ≥ 0, and a finite subset J of T such that |J| ≤ aⁿ for some a ≥ 0 and n : ℕ, pair_reduction states that there exists a set K ⊆ J² such that for any function f : T → E:

                1. |K| ≤ a|J|
                2. ∀ (s, t) ∈ K, d(s, t) ≤ cn
                3. sup_{s, t ∈ J : d(s, t) ≤ c} d(f(s), f(t)) ≤ 2 sup_{(s, t) ∈ K} d(f(s), f(t))