Documentation

Atlas.HighDimensionalStatistics.code.Chapter1.Def_1_17

Definition 1.17: ε-net #

Fix K ⊂ ℝ^d and ε > 0. A set N is called an ε-net of K with respect to a distance d(·,·) on ℝ^d, if N ⊂ K and for any z ∈ K, there exists x ∈ N such that d(x, z) ≤ ε.

We formalize this for a general pseudo-metric space α, which specializes to ℝ^d when α = EuclideanSpace ℝ (Fin d).

Main definitions #

Relation to Mathlib #

Mathlib defines Metric.IsCover ε K N (the covering/net property without the subset requirement) and Metric.coveringNumber ε K (minimum cardinality of an internal ε-cover). Our IsEpsilonNet K N ε is equivalent to N ⊆ K ∧ Metric.IsCover ε K N.

We provide bridge lemmas toIsCover and of_isCover_subset to convert between the two formulations.

References #

def IsEpsilonNet {α : Type u_1} [PseudoMetricSpace α] (K N : Set α) (ε : ) :

A set N is an ε-net of K if N ⊆ K and every point of K is within distance ε of some point in N.

This is Definition 1.17 in Rigollet's High-Dimensional Statistics.

Instances For
    theorem IsEpsilonNet.empty {α : Type u_1} [PseudoMetricSpace α] (ε : ) :

    The empty set is an ε-net of the empty set.

    theorem IsEpsilonNet.self {α : Type u_1} [PseudoMetricSpace α] {ε : } (K : Set α) ( : 0 ε) :

    Every set is an ε-net of itself for any ε ≥ 0.

    theorem IsEpsilonNet.subset_set {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } (h : IsEpsilonNet K N ε) :
    N K

    An ε-net is a subset of the original set.

    theorem IsEpsilonNet.exists_dist_le {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } (h : IsEpsilonNet K N ε) {z : α} (hz : z K) :
    xN, dist x z ε

    The covering property of an ε-net: every point of K is within distance ε of some point in N.

    theorem IsEpsilonNet.mono_eps {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } (h : IsEpsilonNet K N ε) {ε' : } (hεε' : ε ε') :
    IsEpsilonNet K N ε'

    Monotonicity in ε: an ε-net is also an ε'-net for any ε' ≥ ε.

    theorem IsEpsilonNet.anti {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } (h : IsEpsilonNet K N ε) {K' : Set α} (hK' : K' K) (hN : N K') :
    IsEpsilonNet K' N ε

    An ε-net of K restricts to an ε-net of any subset K' ⊆ K, provided N ⊆ K'.

    theorem IsEpsilonNet.mono_net {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } (h : IsEpsilonNet K N ε) {N' : Set α} (hNN' : N N') (hN'K : N' K) :
    IsEpsilonNet K N' ε

    An ε-net grows with the net set: if N ⊆ N' and N' ⊆ K, then N' is also an ε-net, since the covering by N implies covering by N'.

    Bridge to Mathlib's Metric.IsCover #

    theorem IsEpsilonNet.toIsCover {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } (h : IsEpsilonNet K N ε) ( : 0 ε) :

    An IsEpsilonNet with non-negative ε implies Mathlib's Metric.IsCover.

    theorem IsEpsilonNet.of_isCover_subset {α : Type u_1} [PseudoMetricSpace α] {K N : Set α} {ε : } {ε' : NNReal} (hN : N K) (hcov : Metric.IsCover ε' K N) ( : ε' ε) :

    Mathlib's Metric.IsCover together with the subset condition gives an IsEpsilonNet.