Skip to content

Commit 6445b34

Browse files
committed
Define metric-related structures
1 parent d0c28b4 commit 6445b34

2 files changed

Lines changed: 26 additions & 42 deletions

File tree

Munkres/Defs.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ import Munkres.Defs.Compact
33
import Munkres.Defs.Conversions
44
import Munkres.Defs.IsBasisAt
55
import Munkres.Defs.Metric.Basic
6+
import Munkres.Defs.OpenCover
67
-- WARNING: THIS FILE IS AUTO-GENERATED.

Munkres/Defs/Metric/Basic.lean

Lines changed: 25 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,13 @@ import Munkres.Defs.Basic
66

77
namespace 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

1411
universe 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

5342
section LebesgueNumber
5443

5544
universe 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`. -/
5949
class 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

7766
end 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-
8568
end Munkres

0 commit comments

Comments
 (0)