pith. machine review for the scientific record. sign in
theorem

metric_from_comparisons

proved
show as:
view math explainer →
module
IndisputableMonolith.RecogGeom.Comparative
domain
RecogGeom
line
193 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.RecogGeom.Comparative on GitHub at line 193.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

formal source

 190    The idea: if we have enough comparative recognizers that collectively
 191    separate all points and respect a common distance function, then
 192    that distance function is "visible" through the comparisons. -/
 193theorem metric_from_comparisons {ι : Type*} [Nonempty ι]
 194    (R_family : ι → ComparativeRecognizer C E)
 195    (gt_events : ι → Set E)
 196    (d : C → C → ℝ)
 197    (hsep : SeparatesPoints R_family gt_events)
 198    (hcompat : ∀ i, MetricCompatible (R_family i) (gt_events i) d) :
 199    -- If c₁ ≠ c₂, then d(c₁, c₂) > 0
 200    ∀ c₁ c₂, c₁ ≠ c₂ → 0 < d c₁ c₂ := by
 201  intro c₁ c₂ hne
 202  obtain ⟨i, hsep_i⟩ := hsep c₁ c₂ hne
 203  exact (hcompat i).dist_pos_of_separated hsep_i
 204
 205/-! ## The Recognition Distance -/
 206
 207/-- A recognition distance is a pseudometric derived from a family of
 208    comparative recognizers. -/
 209structure RecognitionDistance (C : Type*) where
 210  /-- The distance function -/
 211  dist : C → C → ℝ
 212  /-- Non-negativity -/
 213  dist_nonneg : ∀ c₁ c₂, 0 ≤ dist c₁ c₂
 214  /-- Self-distance is zero -/
 215  dist_self : ∀ c, dist c c = 0
 216  /-- Symmetry -/
 217  dist_symm : ∀ c₁ c₂, dist c₁ c₂ = dist c₂ c₁
 218  /-- Triangle inequality -/
 219  dist_triangle : ∀ c₁ c₂ c₃, dist c₁ c₃ ≤ dist c₁ c₂ + dist c₂ c₃
 220
 221/-- A recognition distance is a metric (not just pseudometric) when
 222    d(c₁, c₂) = 0 implies c₁ = c₂ -/
 223def RecognitionDistance.IsMetric (d : RecognitionDistance C) : Prop :=