Zulip Chat Archive
Stream: Is there code for X?
Topic: continuous_iff_continuous_edist
Yaël Dillies (Jun 09 2025 at 13:49):
Is the edist version of docs#continuous_iff_continuous_dist true? Do we have it somewhere?
Aaron Liu (Jun 09 2025 at 14:00):
It is true at least:
import Mathlib
open Filter Topology Uniformity Set
variable {α β : Type*} [PseudoEMetricSpace α]
theorem EMetric.uniformity_eq_comap_nhds_zero :
𝓤 α = comap (fun p : α × α => edist p.1 p.2) (𝓝 (0 : ENNReal)) := by
ext s
simp only [mem_uniformity_edist, (nhds_basis_eball.comap _).mem_iff]
simp [subset_def, Real.dist_0_eq_abs]
theorem nhds_comap_edist (a : α) : ((𝓝 (0 : ENNReal)).comap (edist · a)) = 𝓝 a := by
simp only [@nhds_eq_comap_uniformity α, Metric.uniformity_eq_comap_nhds_zero, comap_comap,
Function.comp_def, dist_comm]
theorem tendsto_iff_edist_tendsto_zero {f : β → α} {x : Filter β} {a : α} :
Tendsto f x (𝓝 a) ↔ Tendsto (fun b => edist (f b) a) x (𝓝 0) := by
rw [← nhds_comap_edist a, tendsto_comap_iff, Function.comp_def]
lemma continuous_iff_continuous_edist [TopologicalSpace β] {f : β → α} :
Continuous f ↔ Continuous fun x : β × β => edist (f x.1) (f x.2) :=
⟨fun h => h.fst'.edist h.snd', fun h =>
continuous_iff_continuousAt.2 fun _ => tendsto_iff_edist_tendsto_zero.2 <|
(h.comp (.prodMk_left _)).tendsto' _ _ <| edist_self _⟩
Yaël Dillies (Jun 10 2025 at 08:19):
Thanks! But your proofs don't compile on latest mathlib
Yaël Dillies (Jun 10 2025 at 09:34):
Here are the fixed proofs:
import Mathlib.Topology.Instances.ENNReal.Lemmas
open Filter Topology Uniformity Set
open scoped ENNReal
variable {α β : Type*} [PseudoEMetricSpace α]
lemma EMetric.uniformity_eq_comap_nhds_zero :
𝓤 α = comap (fun p : α × α => edist p.1 p.2) (𝓝 (0 : ENNReal)) := by
ext s
simp_rw [mem_uniformity_edist, (ENNReal.nhds_zero_basis.comap _).mem_iff]
simp [subset_def, Real.dist_0_eq_abs]
lemma nhds_comap_edist (a : α) : ((𝓝 (0 : ENNReal)).comap (edist · a)) = 𝓝 a := by
simp only [@nhds_eq_comap_uniformity α, EMetric.uniformity_eq_comap_nhds_zero, comap_comap,
Function.comp_def, edist_comm]
lemma tendsto_iff_edist_tendsto_zero {f : β → α} {x : Filter β} {a : α} :
Tendsto f x (𝓝 a) ↔ Tendsto (fun b => edist (f b) a) x (𝓝 0) := by
rw [← nhds_comap_edist a, tendsto_comap_iff, Function.comp_def]
lemma continuous_iff_continuous_edist [TopologicalSpace β] {f : β → α} :
Continuous f ↔ Continuous fun x : β × β => edist (f x.1) (f x.2) where
mp h := h.fst'.edist h.snd'
mpr h := continuous_iff_continuousAt.2 fun _ ↦ tendsto_iff_edist_tendsto_zero.2 <|
(h.comp (.prodMk_left _)).tendsto' _ _ <| edist_self _
Last updated: Dec 20 2025 at 21:32 UTC