Skip to content

Commit b01e05b

Browse files
urkudkim-em
andcommitted
feat: port Topology.MetricSpace.Polish (#3357)
Co-authored-by: Scott Morrison <scott@tqft.net>
1 parent f1b02be commit b01e05b

File tree

4 files changed

+448
-7
lines changed

4 files changed

+448
-7
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1884,6 +1884,7 @@ import Mathlib.Topology.MetricSpace.Isometry
18841884
import Mathlib.Topology.MetricSpace.Lipschitz
18851885
import Mathlib.Topology.MetricSpace.MetricSeparated
18861886
import Mathlib.Topology.MetricSpace.PiNat
1887+
import Mathlib.Topology.MetricSpace.Polish
18871888
import Mathlib.Topology.MetricSpace.ShrinkingLemma
18881889
import Mathlib.Topology.NhdsSet
18891890
import Mathlib.Topology.NoetherianSpace

Mathlib/Topology/Constructions.lean

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,19 +1395,21 @@ theorem pi_generateFrom_eq_finite {π : ι → Type _} {g : ∀ a, Set (Set (π
13951395
by_cases a ∈ i <;> simp [*]
13961396
#align pi_generate_from_eq_finite pi_generateFrom_eq_finite
13971397

1398+
-- porting note: new lemma
1399+
theorem induced_to_pi {X : Type _} (f : X → ∀ i, π i) :
1400+
induced f Pi.topologicalSpace = ⨅ i, induced (f · i) inferInstance := by
1401+
erw [induced_infᵢ]
1402+
simp only [induced_compose]
1403+
rfl
1404+
13981405
/-- Suppose `π i` is a family of topological spaces indexed by `i : ι`, and `X` is a type
13991406
endowed with a family of maps `f i : X → π i` for every `i : ι`, hence inducing a
14001407
map `g : X → Π i, π i`. This lemma shows that infimum of the topologies on `X` induced by
14011408
the `f i` as `i : ι` varies is simply the topology on `X` induced by `g : X → Π i, π i`
14021409
where `Π i, π i` is endowed with the usual product topology. -/
14031410
theorem inducing_infᵢ_to_pi {X : Type _} (f : ∀ i, X → π i) :
1404-
@Inducing X (∀ i, π i) (⨅ i, induced (f i) inferInstance) _ fun x i => f i x := by
1405-
letI := ⨅ i, induced (f i) inferInstance
1406-
constructor
1407-
erw [induced_infᵢ]
1408-
congr 1
1409-
funext
1410-
erw [induced_compose]; rfl
1411+
@Inducing X (∀ i, π i) (⨅ i, induced (f i) inferInstance) _ fun x i => f i x :=
1412+
letI := ⨅ i, induced (f i) inferInstance; ⟨(induced_to_pi _).symm⟩
14111413
#align inducing_infi_to_pi inducing_infᵢ_to_pi
14121414

14131415
variable [Finite ι] [∀ i, DiscreteTopology (π i)]

Mathlib/Topology/MetricSpace/HausdorffDistance.lean

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,14 @@ theorem _root_.IsClosed.not_mem_iff_infDist_pos (h : IsClosed s) (hs : s.Nonempt
591591
simp [h.mem_iff_infDist_zero hs, infDist_nonneg.gt_iff_ne]
592592
#align is_closed.not_mem_iff_inf_dist_pos IsClosed.not_mem_iff_infDist_pos
593593

594+
-- porting note: new lemma
595+
theorem continuousAt_inv_infDist_pt (h : x ∉ closure s) :
596+
ContinuousAt (fun x ↦ (infDist x s)⁻¹) x := by
597+
rcases s.eq_empty_or_nonempty with (rfl | hs)
598+
· simp only [infDist_empty, continuousAt_const]
599+
· refine (continuous_infDist_pt s).continuousAt.inv₀ ?_
600+
rwa [Ne.def, ← mem_closure_iff_infDist_zero hs]
601+
594602
/-- The infimum distance is invariant under isometries -/
595603
theorem infDist_image (hΦ : Isometry Φ) : infDist (Φ x) (Φ '' t) = infDist x t := by
596604
simp [infDist, infEdist_image hΦ]

0 commit comments

Comments
 (0)