Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit b167809

Browse files
adamtopazurkud
andcommitted
feat(topology/basic): Lim_spec etc. cleanup (#4545)
Fixes #4543 See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there.20code.20for.20X.3F/topic/More.20point.20set.20topology.20questions/near/212757136) Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
1 parent fcaf6e9 commit b167809

File tree

7 files changed

+30
-11
lines changed

7 files changed

+30
-11
lines changed

src/order/filter/ultrafilter.lean

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ begin
143143
end
144144

145145
lemma exists_ultrafilter_of_finite_inter_nonempty (S : set (set α)) (cond : ∀ T : finset (set α),
146-
(↑T : set (set α)) ⊆ S → (⋂₀ (↑T : set (set α))).nonempty) :
146+
(↑T : set (set α)) ⊆ S → (⋂₀ (↑T : set (set α))).nonempty) :
147147
∃ F : filter α, S ⊆ F.sets ∧ is_ultrafilter F :=
148148
begin
149149
suffices : ∃ F : filter α, ne_bot F ∧ S ⊆ F.sets,
@@ -247,6 +247,8 @@ instance ultrafilter.monad : monad ultrafilter := { map := @ultrafilter.map }
247247

248248
instance ultrafilter.inhabited [inhabited α] : inhabited (ultrafilter α) := ⟨pure (default _)⟩
249249

250+
instance {F : ultrafilter α} : ne_bot F.1 := F.2.1
251+
250252
/-- The ultra-filter extending the cofinite filter. -/
251253
noncomputable def hyperfilter : filter α := ultrafilter_of cofinite
252254

src/topology/basic.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -823,16 +823,16 @@ Lim (f.map g)
823823
this lemma with a `[nonempty α]` argument of `Lim` derived from `h` to make it useful for types
824824
without a `[nonempty α]` instance. Because of the built-in proof irrelevance, Lean will unify
825825
this instance with any other instance. -/
826-
lemma Lim_spec {f : filter α} (h : ∃a, f ≤ 𝓝 a) : f ≤ 𝓝 (@Lim _ _ (nonempty_of_exists h) f) :=
826+
lemma le_nhds_Lim {f : filter α} (h : ∃a, f ≤ 𝓝 a) : f ≤ 𝓝 (@Lim _ _ (nonempty_of_exists h) f) :=
827827
epsilon_spec h
828828

829829
/-- If `g` tends to some `𝓝 a` along `f`, then it tends to `𝓝 (lim f g)`. We formulate
830830
this lemma with a `[nonempty α]` argument of `lim` derived from `h` to make it useful for types
831831
without a `[nonempty α]` instance. Because of the built-in proof irrelevance, Lean will unify
832832
this instance with any other instance. -/
833-
lemma lim_spec {f : filter β} {g : β → α} (h : ∃ a, tendsto g f (𝓝 a)) :
833+
lemma tendsto_nhds_lim {f : filter β} {g : β → α} (h : ∃ a, tendsto g f (𝓝 a)) :
834834
tendsto g f (𝓝 $ @lim _ _ _ (nonempty_of_exists h) f g) :=
835-
Lim_spec h
835+
le_nhds_Lim h
836836

837837
end lim
838838

src/topology/extend_from_subset.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ def extend_from (A : set X) (f : X → Y) : X → Y :=
3939
then `f` tends to `extend_from A f x` as `x` tends to `x₀`. -/
4040
lemma tendsto_extend_from {A : set X} {f : X → Y} {x : X}
4141
(h : ∃ y, tendsto f (nhds_within x A) (𝓝 y)) : tendsto f (nhds_within x A) (𝓝 $ extend_from A f x) :=
42-
lim_spec h
42+
tendsto_nhds_lim h
4343

4444
lemma extend_from_eq [t2_space Y] {A : set X} {f : X → Y} {x : X} {y : Y} (hx : x ∈ closure A)
4545
(hf : tendsto f (nhds_within x A) (𝓝 y)) : extend_from A f x = y :=
4646
begin
4747
haveI := mem_closure_iff_nhds_within_ne_bot.mp hx,
48-
exact tendsto_nhds_unique (lim_spec ⟨y, hf⟩) hf,
48+
exact tendsto_nhds_unique (tendsto_nhds_lim ⟨y, hf⟩) hf,
4949
end
5050

5151
lemma extend_from_extends [t2_space Y] {f : X → Y} {A : set X} (hf : continuous_on f A) :

src/topology/separation.lean

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,23 @@ are useful without a `nonempty α` instance.
188188

189189
lemma Lim_eq {a : α} [ne_bot f] (h : f ≤ 𝓝 a) :
190190
@Lim _ _ ⟨a⟩ f = a :=
191-
tendsto_nhds_unique (Lim_spec ⟨a, h⟩) h
191+
tendsto_nhds_unique (le_nhds_Lim ⟨a, h⟩) h
192192

193-
lemma filter.tendsto.lim_eq {a : α} {f : filter β} {g : β → α} (h : tendsto g f (𝓝 a))
194-
[ne_bot f] :
193+
lemma Lim_eq_iff [ne_bot f] (h : ∃ (a : α), f ≤ nhds a) {a} : @Lim _ _ ⟨a⟩ f = a ↔ f ≤ 𝓝 a :=
194+
⟨λ c, c ▸ le_nhds_Lim h, Lim_eq⟩
195+
196+
lemma is_ultrafilter.Lim_eq_iff_le_nhds [compact_space α] (x : α) (F : ultrafilter α) :
197+
@Lim _ _ ⟨x⟩ F.1 = x ↔ F.1 ≤ 𝓝 x :=
198+
⟨λ h, h ▸ is_ultrafilter.le_nhds_Lim _, Lim_eq⟩
199+
200+
lemma filter.tendsto.lim_eq {a : α} {f : filter β} [ne_bot f] {g : β → α} (h : tendsto g f (𝓝 a)) :
195201
@lim _ _ _ ⟨a⟩ f g = a :=
196202
Lim_eq h
197203

204+
lemma filter.lim_eq_iff {f : filter β} [ne_bot f] {g : β → α} (h : ∃ a, tendsto g f (𝓝 a)) {a} :
205+
@lim _ _ _ ⟨a⟩ f g = a ↔ tendsto g f (𝓝 a) :=
206+
⟨λ c, c ▸ tendsto_nhds_lim h, filter.tendsto.lim_eq⟩
207+
198208
lemma continuous.lim_eq [topological_space β] {f : β → α} (h : continuous f) (a : β) :
199209
@lim _ _ _ ⟨f a⟩ (𝓝 a) f = f a :=
200210
(h.tendsto a).lim_eq

src/topology/subset_properties.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,13 @@ begin
593593
rwa [← mem_interior_iff_mem_nhds, hU.interior_eq]
594594
end
595595

596+
lemma is_ultrafilter.le_nhds_Lim [compact_space α] (F : ultrafilter α) :
597+
F.1 ≤ nhds (@Lim _ _ F.1.nonempty_of_ne_bot F.1) :=
598+
begin
599+
rcases compact_iff_ultrafilter_le_nhds.mp compact_univ F.1 F.2 (by simp) with ⟨x, -, h⟩,
600+
exact le_nhds_Lim ⟨x,h⟩,
601+
end
602+
596603
end compact
597604

598605
section clopen

src/topology/uniform_space/cauchy.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ h₁ _ h₃ $ le_principal_iff.2 $ mem_map_sets_iff.2 ⟨univ, univ_mem_sets,
266266

267267
theorem cauchy.le_nhds_Lim [complete_space α] [nonempty α] {f : filter α} (hf : cauchy f) :
268268
f ≤ 𝓝 (Lim f) :=
269-
Lim_spec (complete_space.complete hf)
269+
le_nhds_Lim (complete_space.complete hf)
270270

271271
theorem cauchy_seq.tendsto_lim [semilattice_sup β] [complete_space α] [nonempty α] {u : β → α}
272272
(h : cauchy_seq u) :

src/topology/uniform_space/uniform_embedding.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ begin
385385
rw [uniformly_extend_of_ind _ _ h_f, ← de.nhds_eq_comap],
386386
exact h_f.continuous.tendsto _ },
387387
{ simp only [dense_inducing.extend, dif_neg ha],
388-
exact lim_spec (uniformly_extend_exists h_e h_dense h_f _) }
388+
exact tendsto_nhds_lim (uniformly_extend_exists h_e h_dense h_f _) }
389389
end
390390

391391
lemma uniform_continuous_uniformly_extend [cγ : complete_space γ] : uniform_continuous ψ :=

0 commit comments

Comments
 (0)