noncomputable def
Metric.externalCoveringNumber
{X : Type u_1}
[PseudoEMetricSpace X]
(ε : NNReal)
(A : Set X)
:
The external covering number of a set A in X for radius ε is the minimal cardinality
(in ℕ∞) of an ε-cover by points in X (not necessarily in A).
Equations
- Metric.externalCoveringNumber ε A = ⨅ (C : Set X), ⨅ (_ : Metric.IsCover ε A C), C.encard
Instances For
noncomputable def
Metric.coveringNumber
{X : Type u_1}
[PseudoEMetricSpace X]
(ε : NNReal)
(A : Set X)
:
The covering number (or internal covering number) of a set A for radius ε is
the minimal cardinality (in ℕ∞) of an ε-cover contained in A.
Equations
- Metric.coveringNumber ε A = ⨅ (C : Set X), ⨅ (_ : C ⊆ A), ⨅ (_ : Metric.IsCover ε A C), C.encard
Instances For
noncomputable def
Metric.packingNumber
{X : Type u_1}
[PseudoEMetricSpace X]
(ε : NNReal)
(A : Set X)
:
The packing number of a set A for radius ε is the maximal cardinality (in ℕ∞)
of an ε-separated set in A.
Equations
- Metric.packingNumber ε A = ⨆ (C : Set X), ⨆ (_ : C ⊆ A), ⨆ (_ : Metric.IsSeparated (↑ε) C), C.encard
Instances For
@[simp]
@[simp]
@[simp]
theorem
Metric.externalCoveringNumber_eq_zero
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
:
@[simp]
theorem
Metric.externalCoveringNumber_pos
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
(hA : A.Nonempty)
:
@[simp]
theorem
Metric.coveringNumber_eq_zero
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
:
@[simp]
theorem
Metric.coveringNumber_pos
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
(hA : A.Nonempty)
:
theorem
Metric.externalCoveringNumber_le_coveringNumber
{X : Type u_1}
[PseudoEMetricSpace X]
(ε : NNReal)
(A : Set X)
:
theorem
Metric.IsCover.externalCoveringNumber_le_encard
{X : Type u_1}
[PseudoEMetricSpace X]
{A C : Set X}
{ε : NNReal}
(hC : IsCover ε A C)
:
theorem
Metric.IsCover.coveringNumber_le_encard
{X : Type u_1}
[PseudoEMetricSpace X]
{A C : Set X}
{ε : NNReal}
(h_subset : C ⊆ A)
(hC : IsCover ε A C)
:
theorem
Metric.externalCoveringNumber_anti
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε δ : NNReal}
(h : ε ≤ δ)
:
theorem
Metric.coveringNumber_anti
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε δ : NNReal}
(h : ε ≤ δ)
:
theorem
Metric.externalCoveringNumber_mono_set
{X : Type u_1}
[PseudoEMetricSpace X]
{A B : Set X}
{ε : NNReal}
(h : A ⊆ B)
:
theorem
Metric.coveringNumber_eq_one_of_ediam_le
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
(h_nonempty : A.Nonempty)
(hA : EMetric.diam A ≤ ↑ε)
:
theorem
Metric.externalCoveringNumber_eq_one_of_ediam_le
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
(h_nonempty : A.Nonempty)
(hA : EMetric.diam A ≤ ↑ε)
:
theorem
Metric.externalCoveringNumber_le_one_of_ediam_le
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
(hA : EMetric.diam A ≤ ↑ε)
:
theorem
Metric.coveringNumber_le_one_of_ediam_le
{X : Type u_1}
[PseudoEMetricSpace X]
{A : Set X}
{ε : NNReal}
(hA : EMetric.diam A ≤ ↑ε)
:
theorem
Metric.packingNumber_two_mul_le_externalCoveringNumber
{X : Type u_1}
[PseudoEMetricSpace X]
(ε : NNReal)
(A : Set X)
:
The packing number of a set A for radius 2 * ε is at most the external covering number
of A for radius ε.
@[simp]
theorem
Set.Nonempty.one_le_coveringNumber
{E : Type u_1}
[PseudoEMetricSpace E]
{A : Set E}
(hA : A.Nonempty)
(r : NNReal)
:
theorem
not_isCover_empty
{E : Type u_1}
[PseudoEMetricSpace E]
(ε : NNReal)
(A : Set E)
(h_nonempty : A.Nonempty)
:
¬Metric.IsCover ε A ∅
@[simp]
@[simp]
theorem
isCover_singleton_finset_of_diam_le
{E : Type u_1}
[PseudoEMetricSpace E]
{ε : NNReal}
{A : Set E}
{a : E}
(hA : EMetric.diam A ≤ ↑ε)
(ha : a ∈ A)
:
Metric.IsCover ε A ↑{a}
@[simp]
@[simp]
theorem
externalCoveringNumber_singleton
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{x : E}
:
theorem
subset_iUnion_of_isCover
{E : Type u_1}
[PseudoEMetricSpace E]
{ε : NNReal}
{A C : Set E}
(hC : Metric.IsCover ε A C)
:
theorem
TotallyBounded.exists_isCover
{E : Type u_1}
[PseudoEMetricSpace E]
{A : Set E}
(hA : TotallyBounded A)
(r : NNReal)
(hr : 0 < r)
:
∃ (C : Finset E), ↑C ⊆ A ∧ Metric.IsCover r A ↑C
theorem
IsCover.Nonempty
{E : Type u_1}
[PseudoEMetricSpace E]
{ε : NNReal}
{A C : Set E}
(hC : Metric.IsCover ε A C)
(hA : A.Nonempty)
:
C.Nonempty
theorem
exists_set_encard_eq_coveringNumber
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(h : TotallyBounded A)
(hr : 0 < r)
:
∃ C ⊆ A, C.Finite ∧ Metric.IsCover r A C ∧ C.encard = Metric.coveringNumber r A
noncomputable def
minimalCover
{E : Type u_1}
[PseudoEMetricSpace E]
(r : NNReal)
(A : Set E)
(hr : 0 < r)
:
Set E
An internal r-cover of A with minimal cardinal.
Equations
- minimalCover r A hr = if h : TotallyBounded A then ⋯.choose else ∅
Instances For
theorem
minimalCover_subset
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(hr : 0 < r)
:
theorem
finite_minimalCover
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(hr : 0 < r)
:
(minimalCover r A hr).Finite
theorem
isCover_minimalCover
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(h : TotallyBounded A)
(hr : 0 < r)
:
Metric.IsCover r A (minimalCover r A hr)
theorem
card_minimalCover
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(h : TotallyBounded A)
(hr : 0 < r)
:
theorem
exists_set_encard_eq_packingNumber
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(h : Metric.packingNumber r A < ⊤)
:
∃ C ⊆ A, C.Finite ∧ Metric.IsSeparated (↑r) C ∧ C.encard = Metric.packingNumber r A
noncomputable def
maximalSeparatedSet
{E : Type u_1}
[PseudoEMetricSpace E]
(r : NNReal)
(A : Set E)
:
Set E
A maximal r-separated finite subset of A.
Equations
- maximalSeparatedSet r A = if h : Metric.packingNumber r A < ⊤ then ⋯.choose else ∅
Instances For
theorem
isSeparated_maximalSeparatedSet
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
:
Metric.IsSeparated (↑r) (maximalSeparatedSet r A)
theorem
card_maximalSeparatedSet
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(h : Metric.packingNumber r A < ⊤)
:
theorem
card_le_of_isSeparated
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A C : Set E}
(h_subset : C ⊆ A)
(h_sep : Metric.IsSeparated (↑r) C)
(h : Metric.packingNumber r A < ⊤)
:
theorem
isCover_maximalSeparatedSet
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
(h : Metric.packingNumber r A < ⊤)
:
Metric.IsCover r A (maximalSeparatedSet r A)
theorem
coveringNumber_le_packingNumber
{E : Type u_1}
[PseudoEMetricSpace E]
(r : NNReal)
(A : Set E)
:
theorem
coveringNumber_two_le_externalCoveringNumber
{E : Type u_1}
[PseudoEMetricSpace E]
(r : NNReal)
(A : Set E)
:
theorem
coveringNumber_subset_le
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A B : Set E}
(h : A ⊆ B)
:
theorem
Isometry.isCover_image_iff
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
{F : Type u_2}
[PseudoEMetricSpace F]
{f : E → F}
(hf : Isometry f)
(C : Set E)
:
theorem
Isometry.coveringNumber_image'
{E : Type u_1}
[PseudoEMetricSpace E]
{r : NNReal}
{A : Set E}
{F : Type u_2}
[PseudoEMetricSpace F]
{f : E → F}
(hf : Isometry f)
(hf_inj : Set.InjOn f A)
:
theorem
Isometry.coveringNumber_image
{r : NNReal}
{E : Type u_2}
{F : Type u_3}
[EMetricSpace E]
[PseudoEMetricSpace F]
{f : E → F}
(hf : Isometry f)
{A : Set E}
:
theorem
EMetric.isCover_iff_subset_iUnion_closedBall
{X : Type u_1}
[PseudoEMetricSpace X]
{ε : NNReal}
{s N : Set X}
:
theorem
volume_le_of_isCover
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
{A C : Set E}
(hC : Metric.IsCover ε A C)
(hε : 0 < ε)
:
theorem
volume_le_externalCoveringNumber_mul
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
(A : Set E)
(hε : 0 < ε)
:
theorem
le_volume_of_isSeparated_of_countable
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
{A C : Set E}
(hC_count : C.Countable)
(hC : Metric.IsSeparated (↑ε) C)
(h_subset : C ⊆ A)
:
↑C.encard * MeasureTheory.volume (EMetric.closedBall 0 (↑ε / 2)) ≤ MeasureTheory.volume (A + EMetric.closedBall 0 (↑ε / 2))
theorem
le_volume_of_isSeparated
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
{A C : Set E}
(hC : Metric.IsSeparated (↑ε) C)
(h_subset : C ⊆ A)
:
↑C.encard * MeasureTheory.volume (EMetric.closedBall 0 (↑ε / 2)) ≤ MeasureTheory.volume (A + EMetric.closedBall 0 (↑ε / 2))
theorem
volume_eq_top_of_packingNumber
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
(A : Set E)
(hε : 0 < ε)
(h : Metric.packingNumber ε A = ⊤)
:
theorem
packingNumber_mul_le_volume
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
(A : Set E)
(ε : NNReal)
:
↑(Metric.packingNumber ε A) * MeasureTheory.volume (EMetric.closedBall 0 (↑ε / 2)) ≤ MeasureTheory.volume (A + EMetric.closedBall 0 (↑ε / 2))
theorem
volume_div_le_coveringNumber
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
(A : Set E)
(hε : 0 < ε)
:
MeasureTheory.volume A / MeasureTheory.volume (EMetric.closedBall 0 ↑ε) ≤ ↑(Metric.coveringNumber ε A)
theorem
coveringNumber_le_volume_div
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
(A : Set E)
(hε₁ : 0 < ε)
:
↑(Metric.coveringNumber ε A) ≤ MeasureTheory.volume (A + EMetric.closedBall 0 (↑ε / 2)) / MeasureTheory.volume (EMetric.closedBall 0 (↑ε / 2))
theorem
coveringNumber_closedBall_ge
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
(ε : NNReal)
(x : E)
{r : NNReal}
(hr : 0 < r)
:
theorem
coveringNumber_closedBall_one_ge
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
(ε : NNReal)
(x : E)
:
theorem
coveringNumber_closedBall_le
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
(ε : NNReal)
(x : E)
(r : NNReal)
:
theorem
coveringNumber_closedBall_one_le
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
(ε : NNReal)
(x : E)
:
theorem
coveringNumber_closedBall_le_three_mul
{E : Type u_1}
[NormedAddCommGroup E]
[InnerProductSpace ℝ E]
[FiniteDimensional ℝ E]
[MeasurableSpace E]
[BorelSpace E]
{ε : NNReal}
[Nontrivial E]
{x : E}
{r : NNReal}
(hr_zero : r ≠ 0)
(hε : ε ≤ r)
: