Infimum separation #
This file defines the extended infimum separation of a set. This is approximately dual to the diameter of a set, but where the extended diameter of a set is the supremum of the extended distance between elements of the set, the extended infimum separation is the infimum of the (extended) distance between distinct elements in the set.
We also define the infimum separation as the cast of the extended infimum separation to the reals. This is the infimum of the distance between distinct elements of the set when in a pseudometric space.
All lemmas and definitions are in the Set
namespace to give access to dot notation.
Main definitions #
Set.einfsep
: Extended infimum separation of a set.Set.infsep
: Infimum separation of a set (when in a pseudometric space).
!
The "extended infimum separation" of a set with an edist function.
Equations
- Set.einfsep s = ⨅ x ∈ s, ⨅ y ∈ s, ⨅ (_ : x ≠ y), edist x y
Instances For
theorem
Set.nontrivial_of_einfsep_lt_top
{α : Type u_1}
[EDist α]
{s : Set α}
(hs : Set.einfsep s < ⊤)
:
theorem
Set.nontrivial_of_einfsep_ne_top
{α : Type u_1}
[EDist α]
{s : Set α}
(hs : Set.einfsep s ≠ ⊤)
:
theorem
Set.Subsingleton.einfsep
{α : Type u_1}
[EDist α]
{s : Set α}
(hs : Set.Subsingleton s)
:
Set.einfsep s = ⊤
theorem
Set.einfsep_iUnion_mem_option
{α : Type u_1}
[EDist α]
{ι : Type u_3}
(o : Option ι)
(s : ι → Set α)
:
Set.einfsep (⋃ i ∈ o, s i) = ⨅ i ∈ o, Set.einfsep (s i)
theorem
Set.einfsep_anti
{α : Type u_1}
[EDist α]
{s : Set α}
{t : Set α}
(hst : s ⊆ t)
:
Set.einfsep t ≤ Set.einfsep s
theorem
Set.einfsep_insert_le
{α : Type u_1}
[EDist α]
{x : α}
{s : Set α}
:
Set.einfsep (insert x s) ≤ ⨅ y ∈ s, ⨅ (_ : x ≠ y), edist x y
theorem
Set.le_einfsep_pair
{α : Type u_1}
[EDist α]
{x : α}
{y : α}
:
edist x y ⊓ edist y x ≤ Set.einfsep {x, y}
theorem
Set.einfsep_pair_le_left
{α : Type u_1}
[EDist α]
{x : α}
{y : α}
(hxy : x ≠ y)
:
Set.einfsep {x, y} ≤ edist x y
theorem
Set.einfsep_pair_le_right
{α : Type u_1}
[EDist α]
{x : α}
{y : α}
(hxy : x ≠ y)
:
Set.einfsep {x, y} ≤ edist y x
theorem
Set.einfsep_pair_eq_inf
{α : Type u_1}
[EDist α]
{x : α}
{y : α}
(hxy : x ≠ y)
:
Set.einfsep {x, y} = edist x y ⊓ edist y x
theorem
Set.einfsep_eq_iInf
{α : Type u_1}
[EDist α]
{s : Set α}
:
Set.einfsep s = ⨅ (d : ↑(Set.offDiag s)), Function.uncurry edist ↑d
theorem
Set.einfsep_of_fintype
{α : Type u_1}
[EDist α]
{s : Set α}
[DecidableEq α]
[Fintype ↑s]
:
Set.einfsep s = Finset.inf (Set.toFinset (Set.offDiag s)) (Function.uncurry edist)
theorem
Set.Finite.einfsep
{α : Type u_1}
[EDist α]
{s : Set α}
(hs : Set.Finite s)
:
Set.einfsep s = Finset.inf (Set.Finite.toFinset (_ : Set.Finite (Set.offDiag s))) (Function.uncurry edist)
theorem
Set.Finset.coe_einfsep
{α : Type u_1}
[EDist α]
[DecidableEq α]
{s : Finset α}
:
Set.einfsep ↑s = Finset.inf (Finset.offDiag s) (Function.uncurry edist)
theorem
Set.Nontrivial.einfsep_exists_of_finite
{α : Type u_1}
[EDist α]
{s : Set α}
[Finite ↑s]
(hs : Set.Nontrivial s)
:
∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ Set.einfsep s = edist x y
theorem
Set.Finite.einfsep_exists_of_nontrivial
{α : Type u_1}
[EDist α]
{s : Set α}
(hsf : Set.Finite s)
(hs : Set.Nontrivial s)
:
∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ Set.einfsep s = edist x y
theorem
Set.einfsep_pair
{α : Type u_1}
[PseudoEMetricSpace α]
{x : α}
{y : α}
(hxy : x ≠ y)
:
Set.einfsep {x, y} = edist x y
theorem
Set.einfsep_insert
{α : Type u_1}
[PseudoEMetricSpace α]
{x : α}
{s : Set α}
:
Set.einfsep (insert x s) = (⨅ y ∈ s, ⨅ (_ : x ≠ y), edist x y) ⊓ Set.einfsep s
theorem
Set.einfsep_triple
{α : Type u_1}
[PseudoEMetricSpace α]
{x : α}
{y : α}
{z : α}
(hxy : x ≠ y)
(hyz : y ≠ z)
(hxz : x ≠ z)
:
theorem
Set.le_einfsep_pi_of_le
{β : Type u_2}
{π : β → Type u_3}
[Fintype β]
[(b : β) → PseudoEMetricSpace (π b)]
{s : (b : β) → Set (π b)}
{c : ENNReal}
(h : ∀ (b : β), c ≤ Set.einfsep (s b))
:
c ≤ Set.einfsep (Set.pi Set.univ s)
theorem
Set.subsingleton_of_einfsep_eq_top
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
(hs : Set.einfsep s = ⊤)
:
theorem
Set.einfsep_eq_top_iff
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
:
Set.einfsep s = ⊤ ↔ Set.Subsingleton s
theorem
Set.Nontrivial.einfsep_ne_top
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
(hs : Set.Nontrivial s)
:
Set.einfsep s ≠ ⊤
theorem
Set.Nontrivial.einfsep_lt_top
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
(hs : Set.Nontrivial s)
:
Set.einfsep s < ⊤
theorem
Set.einfsep_lt_top_iff
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
:
Set.einfsep s < ⊤ ↔ Set.Nontrivial s
theorem
Set.einfsep_ne_top_iff
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
:
Set.einfsep s ≠ ⊤ ↔ Set.Nontrivial s
theorem
Set.le_einfsep_of_forall_dist_le
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{d : ℝ}
(h : ∀ x ∈ s, ∀ y ∈ s, x ≠ y → d ≤ dist x y)
:
theorem
Set.einfsep_pos_of_finite
{α : Type u_1}
[EMetricSpace α]
{s : Set α}
[Finite ↑s]
:
0 < Set.einfsep s
theorem
Set.Finite.einfsep_pos
{α : Type u_1}
[EMetricSpace α]
{s : Set α}
(hs : Set.Finite s)
:
0 < Set.einfsep s
theorem
Set.Finite.relatively_discrete
{α : Type u_1}
[EMetricSpace α]
{s : Set α}
(hs : Set.Finite s)
:
The "infimum separation" of a set with an edist function.
Equations
- Set.infsep s = ENNReal.toReal (Set.einfsep s)
Instances For
theorem
Set.infsep_zero
{α : Type u_1}
[EDist α]
{s : Set α}
:
Set.infsep s = 0 ↔ Set.einfsep s = 0 ∨ Set.einfsep s = ⊤
theorem
Set.infsep_pos
{α : Type u_1}
[EDist α]
{s : Set α}
:
0 < Set.infsep s ↔ 0 < Set.einfsep s ∧ Set.einfsep s < ⊤
theorem
Set.Subsingleton.infsep_zero
{α : Type u_1}
[EDist α]
{s : Set α}
(hs : Set.Subsingleton s)
:
Set.infsep s = 0
theorem
Set.infsep_pair_le_toReal_inf
{α : Type u_1}
[EDist α]
{x : α}
{y : α}
(hxy : x ≠ y)
:
Set.infsep {x, y} ≤ ENNReal.toReal (edist x y ⊓ edist y x)
theorem
Set.infsep_pair_eq_toReal
{α : Type u_1}
[PseudoEMetricSpace α]
{x : α}
{y : α}
:
Set.infsep {x, y} = ENNReal.toReal (edist x y)
theorem
Set.Nontrivial.le_infsep_iff
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{d : ℝ}
(hs : Set.Nontrivial s)
:
theorem
Set.Nontrivial.infsep_lt_iff
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{d : ℝ}
(hs : Set.Nontrivial s)
:
theorem
Set.Nontrivial.le_infsep
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{d : ℝ}
(hs : Set.Nontrivial s)
(h : ∀ x ∈ s, ∀ y ∈ s, x ≠ y → d ≤ dist x y)
:
d ≤ Set.infsep s
theorem
Set.le_edist_of_le_infsep
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{d : ℝ}
{x : α}
(hx : x ∈ s)
{y : α}
(hy : y ∈ s)
(hxy : x ≠ y)
(hd : d ≤ Set.infsep s)
:
theorem
Set.infsep_le_dist_of_mem
{α : Type u_1}
[PseudoMetricSpace α]
{x : α}
{y : α}
{s : Set α}
(hx : x ∈ s)
(hy : y ∈ s)
(hxy : x ≠ y)
:
Set.infsep s ≤ dist x y
theorem
Set.infsep_le_of_mem_of_edist_le
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{d : ℝ}
{x : α}
(hx : x ∈ s)
{y : α}
(hy : y ∈ s)
(hxy : x ≠ y)
(hxy' : dist x y ≤ d)
:
Set.infsep s ≤ d
theorem
Set.infsep_pair
{α : Type u_1}
[PseudoMetricSpace α]
{x : α}
{y : α}
:
Set.infsep {x, y} = dist x y
theorem
Set.infsep_triple
{α : Type u_1}
[PseudoMetricSpace α]
{x : α}
{y : α}
{z : α}
(hxy : x ≠ y)
(hyz : y ≠ z)
(hxz : x ≠ z)
:
theorem
Set.Nontrivial.infsep_anti
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
{t : Set α}
(hs : Set.Nontrivial s)
(hst : s ⊆ t)
:
Set.infsep t ≤ Set.infsep s
theorem
Set.infsep_eq_iInf
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
[Decidable (Set.Nontrivial s)]
:
Set.infsep s = if Set.Nontrivial s then ⨅ (d : ↑(Set.offDiag s)), Function.uncurry dist ↑d else 0
theorem
Set.Nontrivial.infsep_eq_iInf
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
(hs : Set.Nontrivial s)
:
Set.infsep s = ⨅ (d : ↑(Set.offDiag s)), Function.uncurry dist ↑d
theorem
Set.infsep_of_fintype
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
[Decidable (Set.Nontrivial s)]
[DecidableEq α]
[Fintype ↑s]
:
Set.infsep s = if hs : Set.Nontrivial s then
Finset.inf' (Set.toFinset (Set.offDiag s)) (_ : (Set.toFinset (Set.offDiag s)).Nonempty) (Function.uncurry dist)
else 0
theorem
Set.Nontrivial.infsep_of_fintype
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
[DecidableEq α]
[Fintype ↑s]
(hs : Set.Nontrivial s)
:
Set.infsep s = Finset.inf' (Set.toFinset (Set.offDiag s)) (_ : (Set.toFinset (Set.offDiag s)).Nonempty) (Function.uncurry dist)
theorem
Set.Finite.infsep
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
[Decidable (Set.Nontrivial s)]
(hsf : Set.Finite s)
:
Set.infsep s = if hs : Set.Nontrivial s then
Finset.inf' (Set.Finite.toFinset (_ : Set.Finite (Set.offDiag s)))
(_ : (Set.Finite.toFinset (_ : Set.Finite (Set.offDiag s))).Nonempty) (Function.uncurry dist)
else 0
theorem
Set.Finite.infsep_of_nontrivial
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
(hsf : Set.Finite s)
(hs : Set.Nontrivial s)
:
Set.infsep s = Finset.inf' (Set.Finite.toFinset (_ : Set.Finite (Set.offDiag s)))
(_ : (Set.Finite.toFinset (_ : Set.Finite (Set.offDiag s))).Nonempty) (Function.uncurry dist)
theorem
Finset.coe_infsep
{α : Type u_1}
[PseudoMetricSpace α]
[DecidableEq α]
(s : Finset α)
:
Set.infsep ↑s = if hs : (Finset.offDiag s).Nonempty then Finset.inf' (Finset.offDiag s) hs (Function.uncurry dist) else 0
theorem
Finset.coe_infsep_of_offDiag_nonempty
{α : Type u_1}
[PseudoMetricSpace α]
[DecidableEq α]
{s : Finset α}
(hs : (Finset.offDiag s).Nonempty)
:
Set.infsep ↑s = Finset.inf' (Finset.offDiag s) hs (Function.uncurry dist)
theorem
Finset.coe_infsep_of_offDiag_empty
{α : Type u_1}
[PseudoMetricSpace α]
[DecidableEq α]
{s : Finset α}
(hs : Finset.offDiag s = ∅)
:
Set.infsep ↑s = 0
theorem
Set.Nontrivial.infsep_exists_of_finite
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
[Finite ↑s]
(hs : Set.Nontrivial s)
:
∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ Set.infsep s = dist x y
theorem
Set.Finite.infsep_exists_of_nontrivial
{α : Type u_1}
[PseudoMetricSpace α]
{s : Set α}
(hsf : Set.Finite s)
(hs : Set.Nontrivial s)
:
∃ x ∈ s, ∃ y ∈ s, x ≠ y ∧ Set.infsep s = dist x y
theorem
Set.infsep_zero_iff_subsingleton_of_finite
{α : Type u_1}
[MetricSpace α]
{s : Set α}
[Finite ↑s]
:
Set.infsep s = 0 ↔ Set.Subsingleton s
theorem
Set.infsep_pos_iff_nontrivial_of_finite
{α : Type u_1}
[MetricSpace α]
{s : Set α}
[Finite ↑s]
:
0 < Set.infsep s ↔ Set.Nontrivial s
theorem
Set.Finite.infsep_zero_iff_subsingleton
{α : Type u_1}
[MetricSpace α]
{s : Set α}
(hs : Set.Finite s)
:
Set.infsep s = 0 ↔ Set.Subsingleton s
theorem
Set.Finite.infsep_pos_iff_nontrivial
{α : Type u_1}
[MetricSpace α]
{s : Set α}
(hs : Set.Finite s)
:
0 < Set.infsep s ↔ Set.Nontrivial s
theorem
Finset.infsep_zero_iff_subsingleton
{α : Type u_1}
[MetricSpace α]
(s : Finset α)
:
Set.infsep ↑s = 0 ↔ Set.Subsingleton ↑s
theorem
Finset.infsep_pos_iff_nontrivial
{α : Type u_1}
[MetricSpace α]
(s : Finset α)
:
0 < Set.infsep ↑s ↔ Set.Nontrivial ↑s