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

Commit f974ae8

Browse files
committed
chore(*): golf (#18111)
### Sets * Add `set.maps_to_prod_map_diagonal`, `set.diagonal_nonempty`, and `set.diagonal_subset_iff`. ### Filters * Generalize and rename `nhds_eq_comap_uniformity_aux` to `filter.mem_comap_prod_mk`. * Add `set.nonempty.principal_ne_bot` and `filter.comap_id'`. * Rename `filter.has_basis.comp_of_surjective` to `filter.has_basis.comp_surjective`. ### Uniform spaces * Rename `monotone_comp_rel` to `monotone.comp_rel` to enable dot notation. * Add `nhds_eq_comap_uniformity'`. * Use `𝓝ˢ (diagonal γ)` instead of `⨆ x, 𝓝 (x, x)` in `uniform_space_of_compact_t2`. * Golf here and there. ### Mathlib 4 port Relevant parts are forward-ported in leanprover-community/mathlib4#1438
1 parent 4d392a6 commit f974ae8

File tree

10 files changed

+80
-130
lines changed

10 files changed

+80
-130
lines changed

src/data/set/function.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,9 @@ lemma maps_to_iff_exists_map_subtype : maps_to f s t ↔ ∃ g : s → t, ∀ x
295295
theorem maps_to' : maps_to f s t ↔ f '' s ⊆ t :=
296296
image_subset_iff.symm
297297

298+
theorem maps_to_prod_map_diagonal : maps_to (prod.map f f) (diagonal α) (diagonal β) :=
299+
diagonal_subset_iff.2 $ λ x, rfl
300+
298301
lemma maps_to.subset_preimage {f : α → β} {s : set α} {t : set β} (hf : maps_to f s t) :
299302
s ⊆ f ⁻¹' t := hf
300303

src/data/set/prod.lean

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,9 @@ lemma mem_diagonal (x : α) : (x, x) ∈ diagonal α := by simp [diagonal]
331331

332332
@[simp] lemma mem_diagonal_iff {x : α × α} : x ∈ diagonal α ↔ x.1 = x.2 := iff.rfl
333333

334+
lemma diagonal_nonempty [nonempty α] : (diagonal α).nonempty :=
335+
nonempty.elim ‹_› $ λ x, ⟨_, mem_diagonal x⟩
336+
334337
instance decidable_mem_diagonal [h : decidable_eq α] (x : α × α) : decidable (x ∈ diagonal α) :=
335338
h x.1 x.2
336339

@@ -340,9 +343,11 @@ by { ext ⟨⟨x, hx⟩, ⟨y, hy⟩⟩, simp [set.diagonal] }
340343
@[simp] lemma range_diag : range (λ x, (x, x)) = diagonal α :=
341344
by { ext ⟨x, y⟩, simp [diagonal, eq_comm] }
342345

346+
lemma diagonal_subset_iff {s} : diagonal α ⊆ s ↔ ∀ x, (x, x) ∈ s :=
347+
by rw [← range_diag, range_subset_iff]
348+
343349
@[simp] lemma prod_subset_compl_diagonal_iff_disjoint : s ×ˢ t ⊆ (diagonal α)ᶜ ↔ disjoint s t :=
344-
subset_compl_comm.trans $ by simp_rw [← range_diag, range_subset_iff,
345-
disjoint_left, mem_compl_iff, prod_mk_mem_set_prod_eq, not_and]
350+
prod_subset_iff.trans disjoint_iff_forall_ne.symm
346351

347352
@[simp] lemma diag_preimage_prod (s t : set α) : (λ x, (x, x)) ⁻¹' (s ×ˢ t) = s ∩ t := rfl
348353

src/order/filter/bases.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,12 +347,12 @@ begin
347347
exact forall_congr (λ s, ⟨λ h, h.1, λ h, ⟨h, λ ⟨t, hl, hP, hts⟩, mem_of_superset hl hts⟩⟩)
348348
end
349349

350-
lemma has_basis.comp_of_surjective (h : l.has_basis p s) {g : ι' → ι} (hg : function.surjective g) :
350+
lemma has_basis.comp_surjective (h : l.has_basis p s) {g : ι' → ι} (hg : function.surjective g) :
351351
l.has_basis (p ∘ g) (s ∘ g) :=
352352
⟨λ t, h.mem_iff.trans hg.exists⟩
353353

354354
lemma has_basis.comp_equiv (h : l.has_basis p s) (e : ι' ≃ ι) : l.has_basis (p ∘ e) (s ∘ e) :=
355-
h.comp_of_surjective e.surjective
355+
h.comp_surjective e.surjective
356356

357357
/-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
358358
`p j ∧ q j`, then `{s j | p j ∧ q j}` is a basis of `l`. -/

src/order/filter/basic.lean

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,8 @@ empty_mem_iff_bot.symm.trans $ mem_principal.trans subset_empty_iff
887887
@[simp] lemma principal_ne_bot_iff {s : set α} : ne_bot (𝓟 s) ↔ s.nonempty :=
888888
ne_bot_iff.trans $ (not_congr principal_eq_bot_iff).trans nonempty_iff_ne_empty.symm
889889

890+
alias principal_ne_bot_iff ↔ _ _root_.set.nonempty.principal_ne_bot
891+
890892
lemma is_compl_principal (s : set α) : is_compl (𝓟 s) (𝓟 sᶜ) :=
891893
is_compl.of_eq (by rw [inf_principal, inter_compl_self, principal_empty]) $
892894
by rw [sup_principal, union_compl_self, principal_univ]
@@ -1622,6 +1624,11 @@ lemma mem_comap' : s ∈ comap f l ↔ {y | ∀ ⦃x⦄, f x = y → x ∈ s}
16221624
⟨λ ⟨t, ht, hts⟩, mem_of_superset ht $ λ y hy x hx, hts $ mem_preimage.2 $ by rwa hx,
16231625
λ h, ⟨_, h, λ x hx, hx rfl⟩⟩
16241626

1627+
/-- RHS form is used, e.g., in the definition of `uniform_space`. -/
1628+
lemma mem_comap_prod_mk {x : α} {s : set β} {F : filter (α × β)} :
1629+
s ∈ comap (prod.mk x) F ↔ {p : α × β | p.fst = x → p.snd ∈ s} ∈ F :=
1630+
by simp_rw [mem_comap', prod.ext_iff, and_imp, @forall_swap β (_ = _), forall_eq, eq_comm]
1631+
16251632
@[simp] lemma eventually_comap : (∀ᶠ a in comap f l, p a) ↔ ∀ᶠ b in l, ∀ a, f a = b → p a :=
16261633
mem_comap'
16271634

@@ -1728,6 +1735,8 @@ preimage_mem_comap hf
17281735
lemma comap_id : comap id f = f :=
17291736
le_antisymm (λ s, preimage_mem_comap) (λ s ⟨t, ht, hst⟩, mem_of_superset ht hst)
17301737

1738+
lemma comap_id' : comap (λ x, x) f = f := comap_id
1739+
17311740
lemma comap_const_of_not_mem {x : β} (ht : t ∈ g) (hx : x ∉ t) :
17321741
comap (λ y : α, x) g = ⊥ :=
17331742
empty_mem_iff_bot.1 $ mem_comap'.2 $ mem_of_superset ht $ λ x' hx' y h, hx $ h.symm ▸ hx'

src/topology/algebra/uniform_group.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ def topological_group.to_uniform_space : uniform_space G :=
436436
simpa using V_sum _ Hz2 _ Hz1,
437437
end,
438438
exact set.subset.trans comp_rel_sub U_sub },
439-
{ exact monotone_comp_rel monotone_id monotone_id }
439+
{ exact monotone_id.comp_rel monotone_id }
440440
end,
441441
is_open_uniformity :=
442442
begin

src/topology/uniform_space/basic.lean

Lines changed: 31 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ localized "infix (name := uniformity.comp_rel) ` ○ `:55 := comp_rel" in unifor
142142
@[simp] theorem swap_id_rel : prod.swap '' id_rel = @id_rel α :=
143143
set.ext $ assume ⟨a, b⟩, by simp [image_swap_eq_preimage_swap]; exact eq_comm
144144

145-
theorem monotone_comp_rel [preorder β] {f g : β → set (α×α)}
145+
theorem monotone.comp_rel [preorder β] {f g : β → set (α×α)}
146146
(hf : monotone f) (hg : monotone g) : monotone (λx, (f x) ○ (g x)) :=
147147
assume a b h p ⟨z, h₁, h₂⟩, ⟨z, hf h h₁, hg h h₂⟩
148148

@@ -218,12 +218,7 @@ def uniform_space.core.mk' {α : Type u} (U : filter (α × α))
218218
(symm : ∀ r ∈ U, prod.swap ⁻¹' r ∈ U)
219219
(comp : ∀ r ∈ U, ∃ t ∈ U, t ○ t ⊆ r) : uniform_space.core α :=
220220
⟨U, λ r ru, id_rel_subset.2 (refl _ ru), symm,
221-
begin
222-
intros r ru,
223-
rw [mem_lift'_sets],
224-
exact comp _ ru,
225-
apply monotone_comp_rel; exact monotone_id,
226-
end
221+
λ r ru, let ⟨s, hs, hsr⟩ := comp _ ru in mem_of_superset (mem_lift' hs) hsr⟩
227222

228223
/-- Defining an `uniform_space.core` from a filter basis satisfying some uniformity-like axioms. -/
229224
def uniform_space.core.mk_of_basis {α : Type u} (B : filter_basis (α × α))
@@ -233,7 +228,7 @@ def uniform_space.core.mk_of_basis {α : Type u} (B : filter_basis (α × α))
233228
{ uniformity := B.filter,
234229
refl := B.has_basis.ge_iff.mpr (λ r ru, id_rel_subset.2 $ refl _ ru),
235230
symm := (B.has_basis.tendsto_iff B.has_basis).mpr symm,
236-
comp := (has_basis.le_basis_iff (B.has_basis.lift' (monotone_comp_rel monotone_id monotone_id))
231+
comp := (has_basis.le_basis_iff (B.has_basis.lift' (monotone_id.comp_rel monotone_id))
237232
B.has_basis).mpr comp }
238233

239234
/-- A uniform space generates a topological space -/
@@ -248,7 +243,7 @@ def uniform_space.core.to_topological_space {α : Type u} (u : uniform_space.cor
248243

249244
lemma uniform_space.core_eq :
250245
∀{u₁ u₂ : uniform_space.core α}, u₁.uniformity = u₂.uniformity → u₁ = u₂
251-
| ⟨u₁, _, _, _⟩ ⟨u₂, _, _, _⟩ h := by { congr, exact h }
246+
| ⟨u₁, _, _, _⟩ ⟨u₂, _, _, _⟩ rfl := by congr
252247

253248
-- the topological structure is embedded in the uniform structure
254249
-- to avoid instance diamond issues. See Note [forgetful inheritance].
@@ -329,19 +324,15 @@ lemma refl_le_uniformity : 𝓟 id_rel ≤ 𝓤 α :=
329324
(@uniform_space.to_core α _).refl
330325

331326
instance uniformity.ne_bot [nonempty α] : ne_bot (𝓤 α) :=
332-
begin
333-
inhabit α,
334-
refine (principal_ne_bot_iff.2 _).mono refl_le_uniformity,
335-
exact ⟨(default, default), rfl⟩
336-
end
327+
diagonal_nonempty.principal_ne_bot.mono refl_le_uniformity
337328

338329
lemma refl_mem_uniformity {x : α} {s : set (α × α)} (h : s ∈ 𝓤 α) :
339330
(x, x) ∈ s :=
340331
refl_le_uniformity h rfl
341332

342333
lemma mem_uniformity_of_eq {x y : α} {s : set (α × α)} (h : s ∈ 𝓤 α) (hx : x = y) :
343334
(x, y) ∈ s :=
344-
hx ▸ refl_mem_uniformity h
335+
refl_le_uniformity h hx
345336

346337
lemma symm_le_uniformity : map (@prod.swap α α) (𝓤 _) ≤ (𝓤 _) :=
347338
(@uniform_space.to_core α _).symm
@@ -356,7 +347,7 @@ lemma comp_mem_uniformity_sets {s : set (α × α)} (hs : s ∈ 𝓤 α) :
356347
∃ t ∈ 𝓤 α, t ○ t ⊆ s :=
357348
have s ∈ (𝓤 α).lift' (λt:set (α×α), t ○ t),
358349
from comp_le_uniformity hs,
359-
(mem_lift'_sets $ monotone_comp_rel monotone_id monotone_id).mp this
350+
(mem_lift'_sets $ monotone_id.comp_rel monotone_id).mp this
360351

361352
/-- If `s ∈ 𝓤 α`, then for any natural `n`, for a subset `t` of a sufficiently small set in `𝓤 α`,
362353
we have `t ○ t ○ ... ○ t ⊆ s` (`n` compositions). -/
@@ -411,7 +402,7 @@ lemma comp_symm_of_uniformity {s : set (α × α)} (hs : s ∈ 𝓤 α) :
411402
∃ t ∈ 𝓤 α, (∀{a b}, (a, b) ∈ t → (b, a) ∈ t) ∧ t ○ t ⊆ s :=
412403
let ⟨t, ht₁, ht₂⟩ := comp_mem_uniformity_sets hs in
413404
let ⟨t', ht', ht'₁, ht'₂⟩ := symm_of_uniformity ht₁ in
414-
⟨t', ht', ht'₁, subset.trans (monotone_comp_rel monotone_id monotone_id ht'₂) ht₂⟩
405+
⟨t', ht', ht'₁, subset.trans (monotone_id.comp_rel monotone_id ht'₂) ht₂⟩
415406

416407
lemma uniformity_le_symm : 𝓤 α ≤ (@prod.swap α α) <$> 𝓤 α :=
417408
by rw [map_swap_eq_comap_swap];
@@ -449,7 +440,7 @@ calc (𝓤 α).lift (λs, f (s ○ s)) =
449440
((𝓤 α).lift' (λs:set (α×α), s ○ s)).lift f :
450441
begin
451442
rw [lift_lift'_assoc],
452-
exact monotone_comp_rel monotone_id monotone_id,
443+
exact monotone_id.comp_rel monotone_id,
453444
exact h
454445
end
455446
... ≤ (𝓤 α).lift f : lift_mono comp_le_uniformity le_rfl
@@ -460,16 +451,16 @@ calc (𝓤 α).lift' (λd, d ○ (d ○ d)) =
460451
(𝓤 α).lift (λs, (𝓤 α).lift' (λt:set(α×α), s ○ (t ○ t))) :
461452
begin
462453
rw [lift_lift'_same_eq_lift'],
463-
exact (assume x, monotone_comp_rel monotone_const $ monotone_comp_rel monotone_id monotone_id),
464-
exact (assume x, monotone_comp_rel monotone_id monotone_const),
454+
exact (assume x, monotone_const.comp_rel $ monotone_id.comp_rel monotone_id),
455+
exact (assume x, monotone_id.comp_rel monotone_const),
465456
end
466457
... ≤ (𝓤 α).lift (λs, (𝓤 α).lift' (λt:set(α×α), s ○ t)) :
467458
lift_mono' $ assume s hs, @uniformity_lift_le_comp α _ _ (𝓟 ∘ (○) s) $
468-
monotone_principal.comp (monotone_comp_rel monotone_const monotone_id)
459+
monotone_principal.comp (monotone_const.comp_rel monotone_id)
469460
... = (𝓤 α).lift' (λs:set(α×α), s ○ s) :
470461
lift_lift'_same_eq_lift'
471-
(assume s, monotone_comp_rel monotone_const monotone_id)
472-
(assume s, monotone_comp_rel monotone_id monotone_const)
462+
(assume s, monotone_const.comp_rel monotone_id)
463+
(assume s, monotone_id.comp_rel monotone_const)
473464
... ≤ (𝓤 α) : comp_le_uniformity
474465

475466
/-- See also `comp_open_symm_mem_uniformity_sets`. -/
@@ -591,15 +582,8 @@ lemma mem_nhds_uniformity_iff_left {x : α} {s : set α} :
591582
s ∈ 𝓝 x ↔ {p : α × α | p.2 = x → p.1 ∈ s} ∈ 𝓤 α :=
592583
by { rw [uniformity_eq_symm, mem_nhds_uniformity_iff_right], refl }
593584

594-
lemma nhds_eq_comap_uniformity_aux {α : Type u} {x : α} {s : set α} {F : filter (α × α)} :
595-
{p : α × α | p.fst = x → p.snd ∈ s} ∈ F ↔ s ∈ comap (prod.mk x) F :=
596-
by rw mem_comap ; from iff.intro
597-
(assume hs, ⟨_, hs, assume x hx, hx rfl⟩)
598-
(assume ⟨t, h, ht⟩, F.sets_of_superset h $
599-
assume ⟨p₁, p₂⟩ hp (h : p₁ = x), ht $ by simp [h.symm, hp])
600-
601585
lemma nhds_eq_comap_uniformity {x : α} : 𝓝 x = (𝓤 α).comap (prod.mk x) :=
602-
by { ext s, rw [mem_nhds_uniformity_iff_right], exact nhds_eq_comap_uniformity_aux }
586+
by { ext s, rw [mem_nhds_uniformity_iff_right, mem_comap_prod_mk] }
603587

604588
/-- See also `is_open_iff_open_ball_subset`. -/
605589
lemma is_open_iff_ball_subset {s : set α} : is_open s ↔ ∀ x ∈ s, ∃ V ∈ 𝓤 α, ball x V ⊆ s :=
@@ -621,6 +605,9 @@ begin
621605
exact nhds_basis_uniformity' h
622606
end
623607

608+
lemma nhds_eq_comap_uniformity' {x : α} : 𝓝 x = (𝓤 α).comap (λ y, (y, x)) :=
609+
(nhds_basis_uniformity (𝓤 α).basis_sets).eq_of_same_basis $ (𝓤 α).basis_sets.comap _
610+
624611
lemma uniform_space.mem_nhds_iff {x : α} {s : set α} : s ∈ 𝓝 x ↔ ∃ V ∈ 𝓤 α, ball x V ⊆ s :=
625612
begin
626613
rw [nhds_eq_comap_uniformity, mem_comap],
@@ -747,32 +734,20 @@ lemma tendsto_left_nhds_uniformity {a : α} : tendsto (λa', (a, a')) (𝓝 a) (
747734
assume s, mem_nhds_left a
748735

749736
lemma lift_nhds_left {x : α} {g : set α → filter β} (hg : monotone g) :
750-
(𝓝 x).lift g = (𝓤 α).lift (λs:set (α×α), g {y | (x, y) ∈ s}) :=
751-
eq.trans
752-
begin
753-
rw [nhds_eq_uniformity],
754-
exact (filter.lift_assoc $ monotone_principal.comp $ monotone_preimage.comp monotone_preimage )
755-
end
756-
(congr_arg _ $ funext $ assume s, filter.lift_principal hg)
737+
(𝓝 x).lift g = (𝓤 α).lift (λs:set (α×α), g (ball x s)) :=
738+
by { rw [nhds_eq_comap_uniformity, comap_lift_eq2 hg], refl }
757739

758740
lemma lift_nhds_right {x : α} {g : set α → filter β} (hg : monotone g) :
759741
(𝓝 x).lift g = (𝓤 α).lift (λs:set (α×α), g {y | (y, x) ∈ s}) :=
760-
calc (𝓝 x).lift g = (𝓤 α).lift (λs:set (α×α), g {y | (x, y) ∈ s}) : lift_nhds_left hg
761-
... = ((@prod.swap α α) <$> (𝓤 α)).lift (λs:set (α×α), g {y | (x, y) ∈ s}) :
762-
by rw [←uniformity_eq_symm]
763-
... = (𝓤 α).lift (λs:set (α×α), g {y | (x, y) ∈ image prod.swap s}) :
764-
map_lift_eq2 $ hg.comp monotone_preimage
765-
... = _ : by simp [image_swap_eq_preimage_swap]
742+
by { rw [nhds_eq_comap_uniformity', comap_lift_eq2 hg], refl }
766743

767744
lemma nhds_nhds_eq_uniformity_uniformity_prod {a b : α} :
768745
𝓝 a ×ᶠ 𝓝 b =
769746
(𝓤 α).lift (λs:set (α×α), (𝓤 α).lift' (λt:set (α×α),
770747
{y : α | (y, a) ∈ s} ×ˢ {y : α | (b, y) ∈ t})) :=
771748
begin
772749
rw [nhds_eq_uniformity', nhds_eq_uniformity, prod_lift'_lift'],
773-
{ refl },
774-
{ exact monotone_preimage },
775-
{ exact monotone_preimage },
750+
exacts [rfl, monotone_preimage, monotone_preimage]
776751
end
777752

778753
lemma nhds_eq_uniformity_prod {a b : α} :
@@ -874,7 +849,7 @@ lemma uniformity_eq_uniformity_interior : 𝓤 α = (𝓤 α).lift' interior :=
874849
le_antisymm
875850
(le_infi $ assume d, le_infi $ assume hd,
876851
let ⟨s, hs, hs_comp⟩ := (mem_lift'_sets $
877-
monotone_comp_rel monotone_id $ monotone_comp_rel monotone_id monotone_id).mp
852+
monotone_id.comp_rel $ monotone_id.comp_rel monotone_id).mp
878853
(comp_le_uniformity3 hd) in
879854
let ⟨t, ht, hst, ht_comp⟩ := nhdset_of_mem_uniformity s hs in
880855
have s ⊆ interior d, from
@@ -1062,12 +1037,8 @@ instance : has_bot (uniform_space α) :=
10621037
⟨{ to_topological_space := ⊥,
10631038
uniformity := 𝓟 id_rel,
10641039
refl := le_rfl,
1065-
symm := by simp [tendsto]; apply subset.refl,
1066-
comp :=
1067-
begin
1068-
rw [lift'_principal], {simp},
1069-
exact monotone_comp_rel monotone_id monotone_id
1070-
end,
1040+
symm := by simp [tendsto],
1041+
comp := lift'_le (mem_principal_self _) $ principal_mono.2 id_comp_rel.subset,
10711042
is_open_uniformity :=
10721043
assume s, by simp [is_open_fold, subset_def, id_rel] {contextual := tt } } ⟩
10731044

@@ -1138,19 +1109,11 @@ def uniform_space.comap (f : α → β) (u : uniform_space β) : uniform_space
11381109
begin
11391110
rw [comap_lift'_eq, comap_lift'_eq2],
11401111
exact (lift'_mono' $ assume s hs ⟨a₁, a₂⟩ ⟨x, h₁, h₂⟩, ⟨f x, h₁, h₂⟩),
1141-
exact monotone_comp_rel monotone_id monotone_id
1112+
exact monotone_id.comp_rel monotone_id
11421113
end
11431114
(comap_mono u.comp),
1144-
is_open_uniformity := λ s, begin
1145-
change (@is_open α (u.to_topological_space.induced f) s ↔ _),
1146-
simp [is_open_iff_nhds, nhds_induced, mem_nhds_uniformity_iff_right, filter.comap, and_comm],
1147-
refine ball_congr (λ x hx, ⟨_, _⟩),
1148-
{ rintro ⟨t, hts, ht⟩, refine ⟨_, ht, _⟩,
1149-
rintro ⟨x₁, x₂⟩ h rfl, exact hts (h rfl) },
1150-
{ rintro ⟨t, ht, hts⟩,
1151-
exact ⟨{y | (f x, y) ∈ t}, λ y hy, @hts (x, y) hy rfl,
1152-
mem_nhds_uniformity_iff_right.1 $ mem_nhds_left _ ht⟩ }
1153-
end }
1115+
is_open_uniformity := λ s, by simp only [is_open_fold, is_open_induced, is_open_iff_mem_nhds,
1116+
nhds_induced, nhds_eq_comap_uniformity, comap_comap, ← mem_comap_prod_mk, ← uniformity] }
11541117

11551118
lemma uniformity_comap [uniform_space α] [uniform_space β] {f : α → β}
11561119
(h : ‹uniform_space α› = uniform_space.comap f ‹uniform_space β›) :
@@ -1655,9 +1618,6 @@ end sum
16551618

16561619
end constructions
16571620

1658-
-- For a version of the Lebesgue number lemma assuming only a sequentially compact space,
1659-
-- see topology/sequences.lean
1660-
16611621
/-- Let `c : ι → set α` be an open cover of a compact set `s`. Then there exists an entourage
16621622
`n` such that for each `x ∈ s` its `n`-neighborhood is contained in some `c i`. -/
16631623
lemma lebesgue_number_lemma {α : Type u} [uniform_space α] {s : set α} {ι} {c : ι → set α}
@@ -1671,7 +1631,7 @@ begin
16711631
rcases comp_mem_uniformity_sets hm with ⟨m', hm', mm'⟩,
16721632
apply (𝓤 α).sets_of_superset hm',
16731633
rintros ⟨x, y⟩ hp rfl,
1674-
refine ⟨i, m', hm', λ z hz, h (monotone_comp_rel monotone_id monotone_const mm' _)⟩,
1634+
refine ⟨i, m', hm', λ z hz, h (monotone_id.comp_rel monotone_const mm' _)⟩,
16751635
dsimp [-mem_comp_rel] at hz ⊢, rw comp_rel_assoc,
16761636
exact ⟨y, hp, hz⟩ },
16771637
have hu₂ : s ⊆ ⋃ n ∈ 𝓤 α, u n,
@@ -1741,13 +1701,11 @@ variables [uniform_space α]
17411701

17421702
theorem tendsto_nhds_right {f : filter β} {u : β → α} {a : α} :
17431703
tendsto u f (𝓝 a) ↔ tendsto (λ x, (a, u x)) f (𝓤 α) :=
1744-
⟨λ H, tendsto_left_nhds_uniformity.comp H,
1745-
λ H s hs, by simpa [mem_of_mem_nhds hs] using H (mem_nhds_uniformity_iff_right.1 hs)⟩
1704+
by rw [nhds_eq_comap_uniformity, tendsto_comap_iff]
17461705

17471706
theorem tendsto_nhds_left {f : filter β} {u : β → α} {a : α} :
17481707
tendsto u f (𝓝 a) ↔ tendsto (λ x, (u x, a)) f (𝓤 α) :=
1749-
⟨λ H, tendsto_right_nhds_uniformity.comp H,
1750-
λ H s hs, by simpa [mem_of_mem_nhds hs] using H (mem_nhds_uniformity_iff_left.1 hs)⟩
1708+
by rw [nhds_eq_comap_uniformity', tendsto_comap_iff]
17511709

17521710
theorem continuous_at_iff'_right [topological_space β] {f : β → α} {b : β} :
17531711
continuous_at f b ↔ tendsto (λ x, (f b, f x)) (𝓝 b) (𝓤 α) :=

0 commit comments

Comments
 (0)