Skip to content

Commit 49f1034

Browse files
committed
chore(Topology/Category): replace TopCat by TopCat.{u} (#38779)
`TopCat` has by design a free universe parameter. If we don't explicitly specify `TopCat` to be `TopCat.{u}`, universe unification can accidentally make lemmas less general. An example for this is [TopCat.range_pullback_to_prod](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Category/TopCat/Limits/Pullbacks.html#TopCat.range_pullback_to_prod), which is currently unnecessarily specialized to `TopCat.{0}`.
1 parent 69c8a06 commit 49f1034

17 files changed

Lines changed: 105 additions & 99 deletions

File tree

Mathlib/Algebra/Category/ModuleCat/Topology/Basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ def freeMap {X Y : TopCat.{v}} (f : X ⟶ Y) : freeObj R X ⟶ freeObj R Y :=
421421
ext x
422422
simp [coe_freeObj]⟩
423423

424-
lemma freeMap_map {X Y : TopCat} (f : X ⟶ Y) (v : X →₀ R) :
424+
lemma freeMap_map {X Y : TopCat.{v}} (f : X ⟶ Y) (v : X →₀ R) :
425425
(freeMap R f : (X →₀ R) → (Y →₀ R)) v = Finsupp.mapDomain f.hom v := rfl
426426

427427
/-- The free topological module over a topological space as a functor.

Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ theorem exists_eq_pow_mul_of_isAffineOpen (X : Scheme) (U : X.Opens) (hU : IsAff
257257
use n, y
258258
simpa [mul_comm x] using d.symm
259259

260-
theorem exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux_aux {X : TopCat}
260+
theorem exists_eq_pow_mul_of_is_compact_of_quasi_separated_space_aux_aux {X : TopCat.{u}}
261261
(F : X.Presheaf CommRingCat) {U₁ U₂ U₃ U₄ U₅ U₆ U₇ : Opens X} {n₁ n₂ : ℕ}
262262
{y₁ : F.obj (op U₁)} {y₂ : F.obj (op U₂)} {f : F.obj (op <| U₁ ⊔ U₂)}
263263
{x : F.obj (op U₃)} (h₄₁ : U₄ ≤ U₁) (h₄₂ : U₄ ≤ U₂) (h₅₁ : U₅ ≤ U₁) (h₅₃ : U₅ ≤ U₃)

Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ group of `x`.
2323

2424
open CategoryTheory
2525

26+
universe u
27+
2628
variable {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y]
2729
variable {x₀ x₁ : X}
2830

@@ -327,20 +329,20 @@ scoped notation "πₓ" => FundamentalGroupoid.fundamentalGroupoidFunctor.obj
327329
/-- The functor between fundamental groupoids induced by a continuous map. -/
328330
scoped notation "πₘ" => FundamentalGroupoid.fundamentalGroupoidFunctor.map
329331

330-
theorem map_eq {X Y : TopCat} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
332+
theorem map_eq {X Y : TopCat.{u}} {x₀ x₁ : X} (f : C(X, Y)) (p : Path.Homotopic.Quotient x₀ x₁) :
331333
(πₘ (TopCat.ofHom f)).map p = p.map f := rfl
332334

333335
/-- Help the typechecker by converting a point in a groupoid back to a point in
334336
the underlying topological space. -/
335-
abbrev toTop {X : TopCat} (x : πₓ X) : X := x.as
337+
abbrev toTop {X : TopCat.{u}} (x : πₓ X) : X := x.as
336338

337339
/-- Help the typechecker by converting a point in a topological space to a
338340
point in the fundamental groupoid of that space. -/
339-
abbrev fromTop {X : TopCat} (x : X) : πₓ X := ⟨x⟩
341+
abbrev fromTop {X : TopCat.{u}} (x : X) : πₓ X := ⟨x⟩
340342

341343
/-- Help the typechecker by converting an arrow in the fundamental groupoid of
342344
a topological space back to a path in that space (i.e., `Path.Homotopic.Quotient`). -/
343-
abbrev toPath {X : TopCat} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) :
345+
abbrev toPath {X : TopCat.{u}} {x₀ x₁ : πₓ X} (p : x₀ ⟶ x₁) :
344346
Path.Homotopic.Quotient x₀.as x₁.as :=
345347
p
346348

Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,11 @@ open unitInterval (uhpath01)
134134
section Casts
135135

136136
/-- Abbreviation for `eqToHom` that accepts points in a topological space -/
137-
abbrev hcast {X : TopCat} {x₀ x₁ : X} (hx : x₀ = x₁) : fromTop x₀ ⟶ fromTop x₁ :=
137+
abbrev hcast {X : TopCat.{u}} {x₀ x₁ : X} (hx : x₀ = x₁) : fromTop x₀ ⟶ fromTop x₁ :=
138138
eqToHom <| FundamentalGroupoid.ext hx
139139

140140
@[simp]
141-
theorem hcast_def {X : TopCat} {x₀ x₁ : X} (hx₀ : x₀ = x₁) :
141+
theorem hcast_def {X : TopCat.{u}} {x₀ x₁ : X} (hx₀ : x₀ = x₁) :
142142
hcast hx₀ = eqToHom (FundamentalGroupoid.ext hx₀) :=
143143
rfl
144144

Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ instance is_sheafedSpace_iso {X Y : LocallyRingedSpace.{u}} (f : X ⟶ Y) [IsIso
242242
/-- The restriction of a locally ringed space along an open embedding.
243243
-/
244244
@[simps!]
245-
def restrict {U : TopCat} (X : LocallyRingedSpace.{u}) {f : U ⟶ X.toTopCat}
245+
def restrict {U : TopCat.{u}} (X : LocallyRingedSpace.{u}) {f : U ⟶ X.toTopCat}
246246
(h : IsOpenEmbedding f) : LocallyRingedSpace where
247247
isLocalRing := by
248248
intro x
@@ -253,7 +253,7 @@ def restrict {U : TopCat} (X : LocallyRingedSpace.{u}) {f : U ⟶ X.toTopCat}
253253

254254
set_option backward.isDefEq.respectTransparency false in
255255
/-- The canonical map from the restriction to the subspace. -/
256-
def ofRestrict {U : TopCat} (X : LocallyRingedSpace.{u})
256+
def ofRestrict {U : TopCat.{u}} (X : LocallyRingedSpace.{u})
257257
{f : U ⟶ X.toTopCat} (h : IsOpenEmbedding f) : X.restrict h ⟶ X :=
258258
⟨X.toPresheafedSpace.ofRestrict h, fun _ => inferInstance⟩
259259

@@ -460,7 +460,7 @@ theorem preimage_basicOpen {X Y : LocallyRingedSpace.{u}} (f : X ⟶ Y) {U : Ope
460460
rw [← stalkMap_germ_apply] at hx
461461
exact (isUnit_map_iff (f.stalkMap x).hom _).mp hx
462462

463-
variable {U : TopCat} (X : LocallyRingedSpace.{u}) {f : U ⟶ X.toTopCat} (h : IsOpenEmbedding f)
463+
variable {U : TopCat.{u}} (X : LocallyRingedSpace.{u}) {f : U ⟶ X.toTopCat} (h : IsOpenEmbedding f)
464464
(V : Opens U) (x : U) (hx : x ∈ V)
465465

466466
/-- For an open embedding `f : U ⟶ X` and a point `x : U`, we get an isomorphism between the stalk

Mathlib/Geometry/RingedSpace/OpenImmersion.lean

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ instance (priority := 100) ofIsIso {X Y : PresheafedSpace C} (f : X ⟶ Y) [IsIs
244244
IsOpenImmersion f :=
245245
AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.ofIso (asIso f)
246246

247-
instance ofRestrict {X : TopCat} (Y : PresheafedSpace C) {f : X ⟶ Y.carrier}
247+
instance ofRestrict {X : TopCat.{w}} (Y : PresheafedSpace C) {f : X ⟶ Y.carrier}
248248
(hf : IsOpenEmbedding f) : IsOpenImmersion (Y.ofRestrict hf) where
249249
base_open := hf
250250
c_iso U := by
@@ -265,7 +265,7 @@ instance ofRestrict {X : TopCat} (Y : PresheafedSpace C) {f : X ⟶ Y.carrier}
265265

266266
set_option backward.isDefEq.respectTransparency false in
267267
@[elementwise, simp]
268-
theorem ofRestrict_invApp {C : Type*} [Category* C] (X : PresheafedSpace C) {Y : TopCat}
268+
theorem ofRestrict_invApp {C : Type*} [Category* C] (X : PresheafedSpace C) {Y : TopCat.{w}}
269269
{f : Y ⟶ TopCat.of X.carrier} (h : IsOpenEmbedding f) (U : Opens (X.restrict h).carrier) :
270270
(PresheafedSpace.IsOpenImmersion.ofRestrict X h).invApp _ U = 𝟙 _ := by
271271
delta invApp
@@ -840,12 +840,12 @@ theorem app_inv_app' (U : Opens Y) (hU : (U : Set Y) ⊆ Set.range f.hom.base) :
840840
Set.subset_inter_iff.mpr ⟨fun _ h => h, hU⟩).op :=
841841
PresheafedSpace.IsOpenImmersion.app_invApp f.hom U
842842

843-
instance ofRestrict {X : TopCat} (Y : SheafedSpace C) {f : X ⟶ Y.carrier}
843+
instance ofRestrict {X : TopCat.{w}} (Y : SheafedSpace C) {f : X ⟶ Y.carrier}
844844
(hf : IsOpenEmbedding f) : IsOpenImmersion (Y.ofRestrict hf) :=
845845
PresheafedSpace.IsOpenImmersion.ofRestrict _ hf
846846

847847
@[elementwise, simp]
848-
theorem ofRestrict_invApp {C : Type*} [Category* C] (X : SheafedSpace C) {Y : TopCat}
848+
theorem ofRestrict_invApp {C : Type*} [Category* C] (X : SheafedSpace C) {Y : TopCat.{w}}
849849
{f : Y ⟶ TopCat.of X.carrier} (h : IsOpenEmbedding f) (U : Opens (X.restrict h).carrier) :
850850
(SheafedSpace.IsOpenImmersion.ofRestrict X h).invApp _ U = 𝟙 _ :=
851851
PresheafedSpace.IsOpenImmersion.ofRestrict_invApp _ h U
@@ -963,7 +963,7 @@ end SheafedSpace.IsOpenImmersion
963963

964964
namespace LocallyRingedSpace.IsOpenImmersion
965965

966-
instance (X : LocallyRingedSpace) {U : TopCat} (f : U ⟶ X.toTopCat) (hf : IsOpenEmbedding f) :
966+
instance (X : LocallyRingedSpace) {U : TopCat.{w}} (f : U ⟶ X.toTopCat) (hf : IsOpenEmbedding f) :
967967
LocallyRingedSpace.IsOpenImmersion (X.ofRestrict hf) :=
968968
PresheafedSpace.IsOpenImmersion.ofRestrict X.toPresheafedSpace hf
969969

@@ -1261,12 +1261,12 @@ theorem app_inv_app' (U : Opens Y) (hU : (U : Set Y) ⊆ Set.range f.base) :
12611261
Set.subset_inter_iff.mpr ⟨fun _ h => h, hU⟩).op :=
12621262
PresheafedSpace.IsOpenImmersion.app_invApp f.1 U
12631263

1264-
instance ofRestrict {X : TopCat} (Y : LocallyRingedSpace) {f : X ⟶ Y.carrier}
1264+
instance ofRestrict {X : TopCat.{w}} (Y : LocallyRingedSpace) {f : X ⟶ Y.carrier}
12651265
(hf : IsOpenEmbedding f) : IsOpenImmersion (Y.ofRestrict hf) :=
12661266
PresheafedSpace.IsOpenImmersion.ofRestrict _ hf
12671267

12681268
@[elementwise, simp]
1269-
theorem ofRestrict_invApp (X : LocallyRingedSpace) {Y : TopCat}
1269+
theorem ofRestrict_invApp (X : LocallyRingedSpace) {Y : TopCat.{w}}
12701270
{f : Y ⟶ TopCat.of X.carrier} (h : IsOpenEmbedding f) (U : Opens (X.restrict h).carrier) :
12711271
(LocallyRingedSpace.IsOpenImmersion.ofRestrict X h).invApp _ U = 𝟙 _ :=
12721272
PresheafedSpace.IsOpenImmersion.ofRestrict_invApp _ h U

Mathlib/Geometry/RingedSpace/Stalks.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ section Restrict
5454
/-- For an open embedding `f : U ⟶ X` and a point `x : U`, we get an isomorphism between the stalk
5555
of `X` at `f x` and the stalk of the restriction of `X` along `f` at `x`.
5656
-/
57-
def restrictStalkIso {U : TopCat} (X : PresheafedSpace.{_, _, v} C) {f : U ⟶ (X : TopCat.{v})}
57+
def restrictStalkIso {U : TopCat.{v}} (X : PresheafedSpace.{_, _, v} C) {f : U ⟶ (X : TopCat.{v})}
5858
(h : IsOpenEmbedding f) (x : U) : (X.restrict h).presheaf.stalk x ≅ X.presheaf.stalk (f x) :=
5959
haveI := initial_of_adjunction (h.adjunctionNhds x)
6060
Final.colimitIso (h.functorNhds x).op ((OpenNhds.inclusion (f x)).op ⋙ X.presheaf)
@@ -65,7 +65,7 @@ def restrictStalkIso {U : TopCat} (X : PresheafedSpace.{_, _, v} C) {f : U ⟶ (
6565
-- We intentionally leave `simp` off this lemma and those generated by `elementwise` and `reassoc`,
6666
-- as the simpNF linter claims they never apply.
6767
@[elementwise, reassoc]
68-
theorem restrictStalkIso_hom_eq_germ {U : TopCat} (X : PresheafedSpace.{_, _, v} C)
68+
theorem restrictStalkIso_hom_eq_germ {U : TopCat.{v}} (X : PresheafedSpace.{_, _, v} C)
6969
{f : U ⟶ (X : TopCat.{v})} (h : IsOpenEmbedding f) (V : Opens U) (x : U) (hx : x ∈ V) :
7070
(X.restrict h).presheaf.germ _ x hx ≫ (restrictStalkIso X h x).hom =
7171
X.presheaf.germ (h.functor.obj V) (f x) ⟨x, hx, rfl⟩ :=
@@ -76,14 +76,14 @@ set_option backward.isDefEq.respectTransparency false in
7676
-- We intentionally leave `simp` off the lemmas generated by `elementwise` and `reassoc`,
7777
-- as the simpNF linter claims they never apply.
7878
@[simp, elementwise, reassoc]
79-
theorem restrictStalkIso_inv_eq_germ {U : TopCat} (X : PresheafedSpace.{_, _, v} C)
79+
theorem restrictStalkIso_inv_eq_germ {U : TopCat.{v}} (X : PresheafedSpace.{_, _, v} C)
8080
{f : U ⟶ (X : TopCat.{v})} (h : IsOpenEmbedding f) (V : Opens U) (x : U) (hx : x ∈ V) :
8181
X.presheaf.germ (h.functor.obj V) (f x) ⟨x, hx, rfl⟩ ≫
8282
(restrictStalkIso X h x).inv =
8383
(X.restrict h).presheaf.germ _ x hx := by
8484
rw [← restrictStalkIso_hom_eq_germ, Category.assoc, Iso.hom_inv_id, Category.comp_id]
8585

86-
theorem restrictStalkIso_inv_eq_ofRestrict {U : TopCat} (X : PresheafedSpace.{_, _, v} C)
86+
theorem restrictStalkIso_inv_eq_ofRestrict {U : TopCat.{v}} (X : PresheafedSpace.{_, _, v} C)
8787
{f : U ⟶ (X : TopCat.{v})} (h : IsOpenEmbedding f) (x : U) :
8888
(X.restrictStalkIso h x).inv = (X.ofRestrict h).stalkMap x := by
8989
-- We can't use `ext` here because it would call `stalk_hom_ext` instead.
@@ -98,7 +98,7 @@ theorem restrictStalkIso_inv_eq_ofRestrict {U : TopCat} (X : PresheafedSpace.{_,
9898
erw [← X.presheaf.map_comp_assoc]
9999
exact (colimit.w ((OpenNhds.inclusion (f x)).op ⋙ X.presheaf) i.op).symm
100100

101-
instance ofRestrict_stalkMap_isIso {U : TopCat} (X : PresheafedSpace.{_, _, v} C)
101+
instance ofRestrict_stalkMap_isIso {U : TopCat.{v}} (X : PresheafedSpace.{_, _, v} C)
102102
{f : U ⟶ (X : TopCat.{v})} (h : IsOpenEmbedding f) (x : U) :
103103
IsIso ((X.ofRestrict h).stalkMap x) := by
104104
rw [← restrictStalkIso_inv_eq_ofRestrict]; infer_instance

Mathlib/Topology/Category/TopCat/Basic.lean

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,19 @@ theorem comp_app {X Y Z : TopCat.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) (x : X) :
118118
(f ≫ g : X → Z) = g ∘ f := rfl
119119

120120
@[ext]
121-
lemma hom_ext {X Y : TopCat} {f g : X ⟶ Y} (hf : f.hom = g.hom) : f = g :=
121+
lemma hom_ext {X Y : TopCat.{u}} {f g : X ⟶ Y} (hf : f.hom = g.hom) : f = g :=
122122
Hom.ext hf
123123

124124
@[ext]
125-
lemma ext {X Y : TopCat} {f g : X ⟶ Y} (w : ∀ x : X, f x = g x) : f = g :=
125+
lemma ext {X Y : TopCat.{u}} {f g : X ⟶ Y} (w : ∀ x : X, f x = g x) : f = g :=
126126
ConcreteCategory.hom_ext _ _ w
127127

128128
@[simp]
129129
lemma hom_ofHom {X Y : Type u} [TopologicalSpace X] [TopologicalSpace Y] (f : C(X, Y)) :
130130
(ofHom f).hom = f := rfl
131131

132132
@[simp]
133-
lemma ofHom_hom {X Y : TopCat} (f : X ⟶ Y) :
133+
lemma ofHom_hom {X Y : TopCat.{u}} (f : X ⟶ Y) :
134134
ofHom (Hom.hom f) = f := rfl
135135

136136
@[simp]
@@ -145,10 +145,10 @@ lemma ofHom_comp {X Y Z : Type u} [TopologicalSpace X] [TopologicalSpace Y] [Top
145145
lemma ofHom_apply {X Y : Type u} [TopologicalSpace X] [TopologicalSpace Y] (f : C(X, Y)) (x : X) :
146146
(ofHom f) x = f x := rfl
147147

148-
lemma hom_inv_id_apply {X Y : TopCat} (f : X ≅ Y) (x : X) : f.inv (f.hom x) = x := by
148+
lemma hom_inv_id_apply {X Y : TopCat.{u}} (f : X ≅ Y) (x : X) : f.inv (f.hom x) = x := by
149149
simp
150150

151-
lemma inv_hom_id_apply {X Y : TopCat} (f : X ≅ Y) (y : Y) : f.hom (f.inv y) = y := by
151+
lemma inv_hom_id_apply {X Y : TopCat.{u}} (f : X ≅ Y) (y : Y) : f.hom (f.inv y) = y := by
152152
simp
153153

154154
/-- Morphisms in `TopCat` are equivalent to continuous maps. -/
@@ -232,17 +232,17 @@ lemma isIso_iff_isHomeomorph {X Y : TopCat.{u}} (f : X ⟶ Y) :
232232
fun _ ↦ (homeoOfIso (asIso f)).isHomeomorph,
233233
fun H ↦ isIso_of_bijective_of_isOpenMap _ H.bijective H.isOpenMap⟩
234234

235-
theorem isOpenEmbedding_iff_comp_isIso {X Y Z : TopCat} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso g] :
235+
theorem isOpenEmbedding_iff_comp_isIso {X Y Z : TopCat.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso g] :
236236
IsOpenEmbedding (f ≫ g) ↔ IsOpenEmbedding f :=
237237
(TopCat.homeoOfIso (asIso g)).isOpenEmbedding.of_comp_iff f
238238

239239
@[simp]
240-
theorem isOpenEmbedding_iff_comp_isIso' {X Y Z : TopCat} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso g] :
240+
theorem isOpenEmbedding_iff_comp_isIso' {X Y Z : TopCat.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso g] :
241241
IsOpenEmbedding (g ∘ f) ↔ IsOpenEmbedding f := by
242242
simp only
243243
exact isOpenEmbedding_iff_comp_isIso f g
244244

245-
theorem isOpenEmbedding_iff_isIso_comp {X Y Z : TopCat} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso f] :
245+
theorem isOpenEmbedding_iff_isIso_comp {X Y Z : TopCat.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso f] :
246246
IsOpenEmbedding (f ≫ g) ↔ IsOpenEmbedding g := by
247247
constructor
248248
· intro h
@@ -251,7 +251,7 @@ theorem isOpenEmbedding_iff_isIso_comp {X Y Z : TopCat} (f : X ⟶ Y) (g : Y ⟶
251251
· exact fun h => h.comp (TopCat.homeoOfIso (asIso f)).isOpenEmbedding
252252

253253
@[simp]
254-
theorem isOpenEmbedding_iff_isIso_comp' {X Y Z : TopCat} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso f] :
254+
theorem isOpenEmbedding_iff_isIso_comp' {X Y Z : TopCat.{u}} (f : X ⟶ Y) (g : Y ⟶ Z) [IsIso f] :
255255
IsOpenEmbedding (g ∘ f) ↔ IsOpenEmbedding g := by
256256
simp only
257257
exact isOpenEmbedding_iff_isIso_comp f g

Mathlib/Topology/Category/TopCat/GrothendieckTopology.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def isOpenEmbedding : MorphismProperty TopCat :=
4747
fun _ _ f ↦ Topology.IsOpenEmbedding f
4848

4949
@[simp]
50-
lemma isOpenEmbedding_iff {X Y : TopCat} (f : X ⟶ Y) :
50+
lemma isOpenEmbedding_iff {X Y : TopCat.{u}} (f : X ⟶ Y) :
5151
isOpenEmbedding f ↔ Topology.IsOpenEmbedding f := .rfl
5252

5353
instance : isOpenEmbedding.IsMultiplicative where
@@ -72,11 +72,11 @@ jointly surjective open embeddings. -/
7272
abbrev grothendieckTopology : GrothendieckTopology TopCat.{u} :=
7373
precoverage.toGrothendieck
7474

75-
lemma exists_mem_zeroHypercover_range {X : TopCat} (E : precoverage.ZeroHypercover X) :
75+
lemma exists_mem_zeroHypercover_range {X : TopCat.{u}} (E : precoverage.ZeroHypercover X) :
7676
∀ x, ∃ (i : E.I₀), x ∈ Set.range (E.f i) := by
7777
simpa using E.mem₀.left
7878

79-
lemma isOpenEmbedding_f_zeroHypercover {X : TopCat} (E : precoverage.ZeroHypercover X) :
79+
lemma isOpenEmbedding_f_zeroHypercover {X : TopCat.{u}} (E : precoverage.ZeroHypercover X) :
8080
∀ i, Topology.IsOpenEmbedding (E.f i) := by
8181
simpa using E.mem₀.right
8282

Mathlib/Topology/Category/TopCat/Limits/Products.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ def binaryCofanIsColimit (X Y : TopCat.{u}) : IsColimit (TopCat.binaryCofan X Y)
248248
exacts [ConcreteCategory.congr_hom h₁ x, ConcreteCategory.congr_hom h₂ x]
249249

250250
set_option backward.isDefEq.respectTransparency false in
251-
theorem binaryCofan_isColimit_iff {X Y : TopCat} (c : BinaryCofan X Y) :
251+
theorem binaryCofan_isColimit_iff {X Y : TopCat.{u}} (c : BinaryCofan X Y) :
252252
Nonempty (IsColimit c) ↔
253253
IsOpenEmbedding c.inl ∧ IsOpenEmbedding c.inr ∧ IsCompl (range c.inl) (range c.inr) := by
254254
classical

0 commit comments

Comments
 (0)