@@ -6,16 +6,13 @@ import Munkres.Defs.Basic
66
77namespace Munkres
88
9- -- import Dino.Core.Topology.IsCountableBasisAt
10- -- import Dino.Core.Set.Subcollection
11-
12- open Topology Filter ENNReal NNReal TopologicalSpace
9+ open Topology Filter NNReal
1310
1411universe u
1512
16- variable {α : Type u} [MetricSpace α]
13+ variable {α : Type u} [MetricSpace α] {X : Set α}
1714
18- theorem Metric.isComplete_iff {X : Set α}
15+ protected theorem Metric.isComplete_iff
1916 : IsComplete X ↔ ∀ (f : ℕ → X), CauchySeq f → ∃ x, Tendsto f atTop (𝓝 x)
2017 := by --
2118 constructor
@@ -27,59 +24,45 @@ theorem Metric.isComplete_iff {X : Set α}
2724 rw [<-completeSpace_coe_iff_isComplete]
2825 exact UniformSpace.complete_of_cauchySeq_tendsto h -- ∎
2926
30- -- theorem Metric.isCompleteSpace_iff [MetricSpace α]
31- -- : CompleteSpace α ↔ ∀ (f : ℕ → α), CauchySeq f → ∃ x, Tendsto f atTop (𝓝 x)
32- -- := by --
33- -- rw [completeSpace_iff_isComplete_univ, Metric.isComplete_iff]
34- -- constructor
35- -- · intro h f hf
36- -- let X : Set α := Set.univ; let φ : X ≃ α := Equiv.Set.univ α
37- -- let f' : ℕ → X := (φ.invFun <| f ·)
38- -- have hf' : CauchySeq f' := by
39- -- rw [ cauchySeq_iff' ] at hf ⊢
40- -- exact hf
41- -- obtain ⟨x, hx⟩ := h f' hf'
42- -- use x
43- -- rw [ tendsto_atTop ] at hx ⊢
44- -- exact hx
45- -- · intro h f' hf'
46- -- let X : Set α := Set.univ; let φ : X ≃ α := Equiv.Set.univ α
47- -- let f : ℕ → α := φ ∘ f'
48- -- have hf : CauchySeq f := by rw [ cauchySeq_iff' ] at hf' ⊢; exact hf'
49- -- obtain ⟨x, hx⟩ := h f hf
50- -- use ⟨x, trivial⟩
51- -- exact tendsto_subtype_rng.mpr hx -- ∎
27+ protected theorem Metric.CompleteSpace_iff
28+ : CompleteSpace α ↔ ∀ (f : ℕ → α), CauchySeq f → ∃ x, Tendsto f atTop (𝓝 x)
29+ := by --
30+ rw [completeSpace_iff_isComplete_univ, Metric.isComplete_iff]
31+ simp only [Metric.cauchySeq_iff', tendsto_subtype_rng]
32+ simp only [Subtype.exists, Set.mem_univ, exists_const]
33+ let φ := Equiv.Set.univ α
34+ -- exact ⟨fun h f ↦ h (φ.symm ∘ f), fun h f' ↦ h (φ ∘ f')⟩
35+ exact ⟨(· <| φ.symm ∘ ·), (· <| φ ∘ ·)⟩ -- ∎
36+
37+ -- Equivalence for the idea of total boundedness.
38+ example : TotallyBounded X ↔ ∀ ε > 0 , ∃ t : Set α, t.Finite ∧ X ⊆ ⋃ y ∈ t, Metric.ball y ε
39+ := by --
40+ exact Metric.totallyBounded_iff -- ∎
5241
5342section LebesgueNumber
5443
5544universe v
56- variable {ι : Sort v} {c : ι → Set α} {U : Set (Set α)}
45+ variable {ι : Sort v} {c : ι → Set α} {δ : ℝ≥0 }
46+ {U : Set (Set α)} {ho : ∀ i, IsOpen (c i)} {hc : Set.univ ⊆ ⋃ i, c i}
5747
5848/-- Tells us if `δ` is a lebesgue number of the open cover `c`. -/
5949class LebesgueNumber (δ : ℝ≥0 ) (ho : ∀ i, IsOpen (c i)) (hc : Set.univ ⊆ ⋃ i, c i) : Prop where
6050 ne_zero : δ ≠ 0
6151 out : ∀ s : Set α, EMetric.diam s < δ → ∃ i, s ⊆ c i
6252
63- lemma LebesgueNumber.pos {δ : ℝ≥0 } {ho : ∀ i, IsOpen (c i)} {hc : Set.univ ⊆ ⋃ i, c i}
64- (h : LebesgueNumber δ ho hc) : δ > 0 := pos_of_ne_zero h.ne_zero
53+ lemma LebesgueNumber.pos (h : LebesgueNumber δ ho hc) : δ > 0 := pos_of_ne_zero h.ne_zero
6554
66- protected theorem LebesgueNumber.iff {δ : ℝ≥ 0 } { ho : ∀ i, IsOpen (c i)} {hc : Set.univ ⊆ ⋃ i, c i}
67- : LebesgueNumber δ ho hc ↔ δ > 0 ∧ ∀ s : Set α, EMetric.diam s < δ → ∃ i, s ⊆ c i
55+ protected theorem LebesgueNumber.iff : LebesgueNumber δ ho hc
56+ ↔ δ ≠ 0 ∧ ∀ s : Set α, EMetric.diam s < δ → ∃ i, s ⊆ c i
6857 := by --
6958 constructor
7059 · intro h
71- exact ⟨h.pos , h.out⟩
72- · intro ⟨pos , out⟩
73- exact {ne_zero := pos.ne' , out} -- ∎
60+ exact ⟨h.ne_zero , h.out⟩
61+ · intro ⟨ne_zero , out⟩
62+ exact {ne_zero, out} -- ∎
7463
7564-- For more info in Mathlib, look for `lebesgue_number_lemma_of_emetric`.
7665
7766end LebesgueNumber
7867
79- -- Equivalence for the idea of total boundedness.
80- example [MetricSpace α] {X : Set α} :
81- TotallyBounded X ↔ ∀ ε > 0 , ∃ t : Set α, t.Finite ∧ X ⊆ ⋃ y ∈ t, Metric.ball y ε
82- := by --
83- exact Metric.totallyBounded_iff -- ∎
84-
8568end Munkres
0 commit comments