Documentation

Atlas.HighDimensionalStatistics.code.Chapter1.Problem_1_7

Problem 1.7: Covering and packing number inequality #

Informal statement (Rigollet, Problem 1.7): For any K ⊂ ℝ^d, distance d on ℝ^d, and ε > 0:

Show that: C(2ε) ≤ P(2ε) ≤ C(ε).

Key ideas for both inequalities:

Formalization approach #

We generalize from ℝ^d to any PseudoEMetricSpace. The covering and packing numbers are defined using Mathlib's Metric.coveringNumber and Metric.packingNumber. The proof follows directly from Mathlib lemmas:

References #

ε-separated subsets #

def IsEpsilonSeparated {α : Type u_1} [PseudoMetricSpace α] (K S : Set α) (ε : ) :

A set S is ε-separated within K if S ⊆ K and any two distinct points of S have distance strictly greater than ε. This is the companion notion to IsEpsilonNet for packing.

Instances For
    theorem IsEpsilonSeparated.subset_set {α : Type u_1} [PseudoMetricSpace α] {K S : Set α} {ε : } (h : IsEpsilonSeparated K S ε) :
    S K

    An ε-separated set is a subset of the ambient set.

    theorem IsEpsilonSeparated.dist_gt {α : Type u_1} [PseudoMetricSpace α] {K S : Set α} {ε : } (h : IsEpsilonSeparated K S ε) {z z' : α} (hz : z S) (hz' : z' S) (hne : z z') :
    dist z z' > ε

    The separation property: distinct points have distance > ε.

    theorem IsEpsilonSeparated.empty {α : Type u_1} [PseudoMetricSpace α] (K : Set α) (ε : ) :

    The empty set is ε-separated in any set.

    theorem IsEpsilonSeparated.mono_eps {α : Type u_1} [PseudoMetricSpace α] {K S : Set α} {ε : } (h : IsEpsilonSeparated K S ε) {ε' : } (hle : ε' ε) :

    Monotonicity: an ε-separated set is ε'-separated for any ε' ≤ ε.

    Covering and packing numbers #

    noncomputable def epsilonCoveringNumber {α : Type u_1} [PseudoEMetricSpace α] (ε : NNReal) (K : Set α) :

    The ε-covering number of K is the minimum cardinality of an ε-net of K (an internal ε-cover, i.e., a subset N ⊆ K that ε-covers K).

    This is Metric.coveringNumber from Mathlib, which computes ⨅ (C ⊆ K) (_ : IsCover ε K C), C.encard.

    Instances For
      noncomputable def epsilonPackingNumber {α : Type u_1} [PseudoEMetricSpace α] (ε : NNReal) (K : Set α) :

      The ε-packing number of K is the maximum cardinality of an ε-separated subset of K.

      This is Metric.packingNumber from Mathlib, which computes ⨆ (S ⊆ K) (_ : IsSeparated ε S), S.encard.

      Instances For

        Problem 1.7: The covering–packing inequality #

        Problem 1.7 (Covering–packing inequality). For any set K in a pseudo-extended-metric space and ε : ℝ≥0:

        C(2ε) ≤ P(2ε) ≤ C(ε)

        where C(ε) = epsilonCoveringNumber ε K is the ε-covering number and P(ε) = epsilonPackingNumber ε K is the ε-packing number.

        The first inequality C(2ε) ≤ P(2ε) holds because any maximal (2ε)-separated subset is a (2ε)-net (by maximality, every point of K is within distance 2ε of some point in the set).

        The second inequality P(2ε) ≤ C(ε) holds because given any ε-net N, the map sending each point of a (2ε)-separated set to its nearest point in N is injective (by the triangle inequality, two distinct points in the separated set cannot map to the same net point).