topology.category.Top.limits.basicMathlib.Topology.Category.TopCat.Limits.Basic

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

chore(topology/category/Top/limits): split file (#18871)

Per https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233487.20last.20minute.20split.3F

This file is already being ported at https://github.com/leanprover-community/mathlib4/pull/3487, but:

  • it's not going so well right now
  • it is going well up to the point of the proposed new limits/basic.lean
  • that is sufficient to port the files needed for Copenhagen

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
 -/
-import Topology.Category.Top.Basic
+import Topology.Category.TopCat.Basic
 import CategoryTheory.Limits.ConcreteCategory
 
 #align_import topology.category.Top.limits.basic from "leanprover-community/mathlib"@"f2b757fc5c341d88741b9c4630b1e8ba973c5726"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
 -/
-import Mathbin.Topology.Category.Top.Basic
-import Mathbin.CategoryTheory.Limits.ConcreteCategory
+import Topology.Category.Top.Basic
+import CategoryTheory.Limits.ConcreteCategory
 
 #align_import topology.category.Top.limits.basic from "leanprover-community/mathlib"@"f2b757fc5c341d88741b9c4630b1e8ba973c5726"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
-
-! This file was ported from Lean 3 source module topology.category.Top.limits.basic
-! leanprover-community/mathlib commit f2b757fc5c341d88741b9c4630b1e8ba973c5726
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.Category.Top.Basic
 import Mathbin.CategoryTheory.Limits.ConcreteCategory
 
+#align_import topology.category.Top.limits.basic from "leanprover-community/mathlib"@"f2b757fc5c341d88741b9c4630b1e8ba973c5726"
+
 /-!
 # The category of topological spaces has all limits and colimits
 
Diff
@@ -38,9 +38,9 @@ namespace TopCat
 
 variable {J : Type v} [SmallCategory J]
 
--- mathport name: exprforget
 local notation "forget" => forget TopCat
 
+#print TopCat.limitCone /-
 /-- A choice of limit cone for a functor `F : J ⥤ Top`.
 Generally you should just use `limit.cone F`, unless you need the actual definition
 (which is in terms of `types.limit_cone`).
@@ -55,7 +55,9 @@ def limitCone (F : J ⥤ TopCat.{max v u}) : Cone F
           continuous_toFun :=
             show Continuous ((fun u : ∀ j : J, F.obj j => u j) ∘ Subtype.val) by continuity } }
 #align Top.limit_cone TopCat.limitCone
+-/
 
+#print TopCat.limitConeInfi /-
 /-- A choice of limit cone for a functor `F : J ⥤ Top` whose topology is defined as an
 infimum of topologies infimum.
 Generally you should just use `limit.cone F`, unless you need the actual definition
@@ -72,7 +74,9 @@ def limitConeInfi (F : J ⥤ TopCat.{max v u}) : Cone F
       naturality' := fun j j' f =>
         ContinuousMap.coe_injective ((Types.limitCone (F ⋙ forget)).π.naturality f) }
 #align Top.limit_cone_infi TopCat.limitConeInfi
+-/
 
+#print TopCat.limitConeIsLimit /-
 /-- The chosen cone `Top.limit_cone F` for a functor `F : J ⥤ Top` is a limit cone.
 Generally you should just use `limit.is_limit F`, unless you need the actual definition
 (which is in terms of `types.limit_cone_is_limit`).
@@ -82,7 +86,9 @@ def limitConeIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitCone F)
   lift S := { toFun := fun x => ⟨fun j => S.π.app _ x, fun i j f => by dsimp; erw [← S.w f]; rfl⟩ }
   uniq S m h := by ext : 3; simpa [← h]
 #align Top.limit_cone_is_limit TopCat.limitConeIsLimit
+-/
 
+#print TopCat.limitConeInfiIsLimit /-
 /-- The chosen cone `Top.limit_cone_infi F` for a functor `F : J ⥤ Top` is a limit cone.
 Generally you should just use `limit.is_limit F`, unless you need the actual definition
 (which is in terms of `types.limit_cone_is_limit`).
@@ -96,7 +102,9 @@ def limitConeInfiIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitConeInfi F
         coinduced_le_iff_le_induced.mp <|
           (continuous_iff_coinduced_le.mp (s.π.app j).Continuous : _))
 #align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimit
+-/
 
+#print TopCat.topCat_hasLimitsOfSize /-
 instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCat.{max v u}
     where HasLimitsOfShape J 𝒥 :=
     {
@@ -105,6 +113,7 @@ instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCat.{max v u}
           { Cone := limit_cone F
             IsLimit := limit_cone_is_limit F } }
 #align Top.Top_has_limits_of_size TopCat.topCat_hasLimitsOfSize
+-/
 
 #print TopCat.topCat_hasLimits /-
 instance topCat_hasLimits : HasLimits TopCat.{u} :=
@@ -112,6 +121,7 @@ instance topCat_hasLimits : HasLimits TopCat.{u} :=
 #align Top.Top_has_limits TopCat.topCat_hasLimits
 -/
 
+#print TopCat.forgetPreservesLimitsOfSize /-
 instance forgetPreservesLimitsOfSize :
     PreservesLimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
     where PreservesLimitsOfShape J 𝒥 :=
@@ -120,6 +130,7 @@ instance forgetPreservesLimitsOfSize :
         preserves_limit_of_preserves_limit_cone (limit_cone_is_limit F)
           (types.limit_cone_is_limit (F ⋙ forget)) }
 #align Top.forget_preserves_limits_of_size TopCat.forgetPreservesLimitsOfSize
+-/
 
 #print TopCat.forgetPreservesLimits /-
 instance forgetPreservesLimits : PreservesLimits (forget : TopCat.{u} ⥤ Type u) :=
@@ -127,6 +138,7 @@ instance forgetPreservesLimits : PreservesLimits (forget : TopCat.{u} ⥤ Type u
 #align Top.forget_preserves_limits TopCat.forgetPreservesLimits
 -/
 
+#print TopCat.colimitCocone /-
 /-- A choice of colimit cocone for a functor `F : J ⥤ Top`.
 Generally you should just use `colimit.coone F`, unless you need the actual definition
 (which is in terms of `types.colimit_cocone`).
@@ -142,7 +154,9 @@ def colimitCocone (F : J ⥤ TopCat.{max v u}) : Cocone F
       naturality' := fun j j' f =>
         ContinuousMap.coe_injective ((Types.colimitCocone (F ⋙ forget)).ι.naturality f) }
 #align Top.colimit_cocone TopCat.colimitCocone
+-/
 
+#print TopCat.colimitCoconeIsColimit /-
 /-- The chosen cocone `Top.colimit_cocone F` for a functor `F : J ⥤ Top` is a colimit cocone.
 Generally you should just use `colimit.is_colimit F`, unless you need the actual definition
 (which is in terms of `types.colimit_cocone_is_colimit`).
@@ -157,7 +171,9 @@ def colimitCoconeIsColimit (F : J ⥤ TopCat.{max v u}) : IsColimit (colimitCoco
         coinduced_le_iff_le_induced.mp <|
           (continuous_iff_coinduced_le.mp (s.ι.app j).Continuous : _))
 #align Top.colimit_cocone_is_colimit TopCat.colimitCoconeIsColimit
+-/
 
+#print TopCat.topCat_hasColimitsOfSize /-
 instance topCat_hasColimitsOfSize : HasColimitsOfSize.{v} TopCat.{max v u}
     where HasColimitsOfShape J 𝒥 :=
     {
@@ -166,6 +182,7 @@ instance topCat_hasColimitsOfSize : HasColimitsOfSize.{v} TopCat.{max v u}
           { Cocone := colimit_cocone F
             IsColimit := colimit_cocone_is_colimit F } }
 #align Top.Top_has_colimits_of_size TopCat.topCat_hasColimitsOfSize
+-/
 
 #print TopCat.topCat_hasColimits /-
 instance topCat_hasColimits : HasColimits TopCat.{u} :=
@@ -173,6 +190,7 @@ instance topCat_hasColimits : HasColimits TopCat.{u} :=
 #align Top.Top_has_colimits TopCat.topCat_hasColimits
 -/
 
+#print TopCat.forgetPreservesColimitsOfSize /-
 instance forgetPreservesColimitsOfSize :
     PreservesColimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
     where PreservesColimitsOfShape J 𝒥 :=
@@ -181,6 +199,7 @@ instance forgetPreservesColimitsOfSize :
         preserves_colimit_of_preserves_colimit_cocone (colimit_cocone_is_colimit F)
           (types.colimit_cocone_is_colimit (F ⋙ forget)) }
 #align Top.forget_preserves_colimits_of_size TopCat.forgetPreservesColimitsOfSize
+-/
 
 #print TopCat.forgetPreservesColimits /-
 instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Type u) :=
@@ -188,29 +207,37 @@ instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Ty
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
 -/
 
+#print TopCat.isTerminalPUnit /-
 /-- The terminal object of `Top` is `punit`. -/
 def isTerminalPUnit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   haveI : ∀ X, Unique (X ⟶ TopCat.of PUnit.{u + 1}) := fun X =>
     ⟨⟨⟨fun x => PUnit.unit, by continuity⟩⟩, fun f => by ext⟩
   limits.is_terminal.of_unique _
 #align Top.is_terminal_punit TopCat.isTerminalPUnit
+-/
 
+#print TopCat.terminalIsoPUnit /-
 /-- The terminal object of `Top` is `punit`. -/
 def terminalIsoPUnit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
   terminalIsTerminal.uniqueUpToIso isTerminalPUnit
 #align Top.terminal_iso_punit TopCat.terminalIsoPUnit
+-/
 
+#print TopCat.isInitialPEmpty /-
 /-- The initial object of `Top` is `pempty`. -/
 def isInitialPEmpty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   haveI : ∀ X, Unique (TopCat.of PEmpty.{u + 1} ⟶ X) := fun X =>
     ⟨⟨⟨fun x => x.elim, by continuity⟩⟩, fun f => by ext ⟨⟩⟩
   limits.is_initial.of_unique _
 #align Top.is_initial_pempty TopCat.isInitialPEmpty
+-/
 
+#print TopCat.initialIsoPEmpty /-
 /-- The initial object of `Top` is `pempty`. -/
 def initialIsoPEmpty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
   initialIsInitial.uniqueUpToIso isInitialPEmpty
 #align Top.initial_iso_pempty TopCat.initialIsoPEmpty
+-/
 
 end TopCat
 
Diff
@@ -47,7 +47,7 @@ Generally you should just use `limit.cone F`, unless you need the actual definit
 -/
 def limitCone (F : J ⥤ TopCat.{max v u}) : Cone F
     where
-  pt := TopCat.of { u : ∀ j : J, F.obj j | ∀ {i j : J} (f : i ⟶ j), F.map f (u i) = u j }
+  pt := TopCat.of {u : ∀ j : J, F.obj j | ∀ {i j : J} (f : i ⟶ j), F.map f (u i) = u j}
   π :=
     {
       app := fun j =>
Diff
@@ -41,12 +41,6 @@ variable {J : Type v} [SmallCategory J]
 -- mathport name: exprforget
 local notation "forget" => forget TopCat
 
-/- warning: Top.limit_cone -> TopCat.limitCone is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F
-Case conversion may be inaccurate. Consider using '#align Top.limit_cone TopCat.limitConeₓ'. -/
 /-- A choice of limit cone for a functor `F : J ⥤ Top`.
 Generally you should just use `limit.cone F`, unless you need the actual definition
 (which is in terms of `types.limit_cone`).
@@ -62,12 +56,6 @@ def limitCone (F : J ⥤ TopCat.{max v u}) : Cone F
             show Continuous ((fun u : ∀ j : J, F.obj j => u j) ∘ Subtype.val) by continuity } }
 #align Top.limit_cone TopCat.limitCone
 
-/- warning: Top.limit_cone_infi -> TopCat.limitConeInfi is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F
-Case conversion may be inaccurate. Consider using '#align Top.limit_cone_infi TopCat.limitConeInfiₓ'. -/
 /-- A choice of limit cone for a functor `F : J ⥤ Top` whose topology is defined as an
 infimum of topologies infimum.
 Generally you should just use `limit.cone F`, unless you need the actual definition
@@ -85,12 +73,6 @@ def limitConeInfi (F : J ⥤ TopCat.{max v u}) : Cone F
         ContinuousMap.coe_injective ((Types.limitCone (F ⋙ forget)).π.naturality f) }
 #align Top.limit_cone_infi TopCat.limitConeInfi
 
-/- warning: Top.limit_cone_is_limit -> TopCat.limitConeIsLimit is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F (TopCat.limitCone.{u1, u2} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F (TopCat.limitCone.{u1, u2} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align Top.limit_cone_is_limit TopCat.limitConeIsLimitₓ'. -/
 /-- The chosen cone `Top.limit_cone F` for a functor `F : J ⥤ Top` is a limit cone.
 Generally you should just use `limit.is_limit F`, unless you need the actual definition
 (which is in terms of `types.limit_cone_is_limit`).
@@ -101,12 +83,6 @@ def limitConeIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitCone F)
   uniq S m h := by ext : 3; simpa [← h]
 #align Top.limit_cone_is_limit TopCat.limitConeIsLimit
 
-/- warning: Top.limit_cone_infi_is_limit -> TopCat.limitConeInfiIsLimit is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F (TopCat.limitConeInfi.{u1, u2} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F (TopCat.limitConeInfi.{u1, u2} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimitₓ'. -/
 /-- The chosen cone `Top.limit_cone_infi F` for a functor `F : J ⥤ Top` is a limit cone.
 Generally you should just use `limit.is_limit F`, unless you need the actual definition
 (which is in terms of `types.limit_cone_is_limit`).
@@ -121,12 +97,6 @@ def limitConeInfiIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitConeInfi F
           (continuous_iff_coinduced_le.mp (s.π.app j).Continuous : _))
 #align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimit
 
-/- warning: Top.Top_has_limits_of_size -> TopCat.topCat_hasLimitsOfSize is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Limits.HasLimitsOfSize.{u2, u2, max u2 u1, succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}
-but is expected to have type
-  CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}
-Case conversion may be inaccurate. Consider using '#align Top.Top_has_limits_of_size TopCat.topCat_hasLimitsOfSizeₓ'. -/
 instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCat.{max v u}
     where HasLimitsOfShape J 𝒥 :=
     {
@@ -142,12 +112,6 @@ instance topCat_hasLimits : HasLimits TopCat.{u} :=
 #align Top.Top_has_limits TopCat.topCat_hasLimits
 -/
 
-/- warning: Top.forget_preserves_limits_of_size -> TopCat.forgetPreservesLimitsOfSize is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Limits.PreservesLimitsOfSize.{u2, u2, max u2 u1, max u2 u1, succ (max u2 u1), succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} (CategoryTheory.forget.{succ (max u2 u1), max u2 u1, max u2 u1} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} TopCat.concreteCategory.{max u2 u1})
-but is expected to have type
-  CategoryTheory.Limits.PreservesLimitsOfSize.{u1, u1, max u2 u1, max u2 u1, succ (max u2 u1), succ (max u2 u1)} TopCat.{max u2 u1} instTopCatLargeCategory.{max u2 u1} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} (CategoryTheory.forget.{succ (max u2 u1), max u2 u1, max u2 u1} TopCat.{max u2 u1} instTopCatLargeCategory.{max u2 u1} TopCat.concreteCategory.{max u2 u1})
-Case conversion may be inaccurate. Consider using '#align Top.forget_preserves_limits_of_size TopCat.forgetPreservesLimitsOfSizeₓ'. -/
 instance forgetPreservesLimitsOfSize :
     PreservesLimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
     where PreservesLimitsOfShape J 𝒥 :=
@@ -163,12 +127,6 @@ instance forgetPreservesLimits : PreservesLimits (forget : TopCat.{u} ⥤ Type u
 #align Top.forget_preserves_limits TopCat.forgetPreservesLimits
 -/
 
-/- warning: Top.colimit_cocone -> TopCat.colimitCocone is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.Cocone.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F
-Case conversion may be inaccurate. Consider using '#align Top.colimit_cocone TopCat.colimitCoconeₓ'. -/
 /-- A choice of colimit cocone for a functor `F : J ⥤ Top`.
 Generally you should just use `colimit.coone F`, unless you need the actual definition
 (which is in terms of `types.colimit_cocone`).
@@ -185,12 +143,6 @@ def colimitCocone (F : J ⥤ TopCat.{max v u}) : Cocone F
         ContinuousMap.coe_injective ((Types.colimitCocone (F ⋙ forget)).ι.naturality f) }
 #align Top.colimit_cocone TopCat.colimitCocone
 
-/- warning: Top.colimit_cocone_is_colimit -> TopCat.colimitCoconeIsColimit is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.IsColimit.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F (TopCat.colimitCocone.{u1, u2} J _inst_1 F)
-but is expected to have type
-  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F (TopCat.colimitCocone.{u1, u2} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align Top.colimit_cocone_is_colimit TopCat.colimitCoconeIsColimitₓ'. -/
 /-- The chosen cocone `Top.colimit_cocone F` for a functor `F : J ⥤ Top` is a colimit cocone.
 Generally you should just use `colimit.is_colimit F`, unless you need the actual definition
 (which is in terms of `types.colimit_cocone_is_colimit`).
@@ -206,12 +158,6 @@ def colimitCoconeIsColimit (F : J ⥤ TopCat.{max v u}) : IsColimit (colimitCoco
           (continuous_iff_coinduced_le.mp (s.ι.app j).Continuous : _))
 #align Top.colimit_cocone_is_colimit TopCat.colimitCoconeIsColimit
 
-/- warning: Top.Top_has_colimits_of_size -> TopCat.topCat_hasColimitsOfSize is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Limits.HasColimitsOfSize.{u2, u2, max u2 u1, succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}
-but is expected to have type
-  CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}
-Case conversion may be inaccurate. Consider using '#align Top.Top_has_colimits_of_size TopCat.topCat_hasColimitsOfSizeₓ'. -/
 instance topCat_hasColimitsOfSize : HasColimitsOfSize.{v} TopCat.{max v u}
     where HasColimitsOfShape J 𝒥 :=
     {
@@ -227,12 +173,6 @@ instance topCat_hasColimits : HasColimits TopCat.{u} :=
 #align Top.Top_has_colimits TopCat.topCat_hasColimits
 -/
 
-/- warning: Top.forget_preserves_colimits_of_size -> TopCat.forgetPreservesColimitsOfSize is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Limits.PreservesColimitsOfSize.{u2, u2, max u2 u1, max u2 u1, succ (max u2 u1), succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} (CategoryTheory.forget.{succ (max u2 u1), max u2 u1, max u2 u1} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} TopCat.concreteCategory.{max u2 u1})
-but is expected to have type
-  CategoryTheory.Limits.PreservesColimitsOfSize.{u1, u1, max u1 u2, max u1 u2, succ (max u1 u2), succ (max u1 u2)} TopCat.{max u1 u2} instTopCatLargeCategory.{max u1 u2} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.forget.{succ (max u1 u2), max u1 u2, max u1 u2} TopCat.{max u1 u2} instTopCatLargeCategory.{max u1 u2} TopCat.concreteCategory.{max u1 u2})
-Case conversion may be inaccurate. Consider using '#align Top.forget_preserves_colimits_of_size TopCat.forgetPreservesColimitsOfSizeₓ'. -/
 instance forgetPreservesColimitsOfSize :
     PreservesColimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
     where PreservesColimitsOfShape J 𝒥 :=
@@ -248,12 +188,6 @@ instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Ty
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
 -/
 
-/- warning: Top.is_terminal_punit -> TopCat.isTerminalPUnit is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Limits.IsTerminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
-but is expected to have type
-  CategoryTheory.Limits.IsTerminal.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.is_terminal_punit TopCat.isTerminalPUnitₓ'. -/
 /-- The terminal object of `Top` is `punit`. -/
 def isTerminalPUnit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   haveI : ∀ X, Unique (X ⟶ TopCat.of PUnit.{u + 1}) := fun X =>
@@ -261,23 +195,11 @@ def isTerminalPUnit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   limits.is_terminal.of_unique _
 #align Top.is_terminal_punit TopCat.isTerminalPUnit
 
-/- warning: Top.terminal_iso_punit -> TopCat.terminalIsoPUnit is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.terminalIsoPUnit._proof_1.{u1}) (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
-but is expected to have type
-  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{0, 0, u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Discrete.{0} PEmpty.{1}) (CategoryTheory.discreteCategory.{0} PEmpty.{1}) TopCat.topCat_hasLimitsOfSize.{0, u1})) (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.terminal_iso_punit TopCat.terminalIsoPUnitₓ'. -/
 /-- The terminal object of `Top` is `punit`. -/
 def terminalIsoPUnit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
   terminalIsTerminal.uniqueUpToIso isTerminalPUnit
 #align Top.terminal_iso_punit TopCat.terminalIsoPUnit
 
-/- warning: Top.is_initial_pempty -> TopCat.isInitialPEmpty is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Limits.IsInitial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
-but is expected to have type
-  CategoryTheory.Limits.IsInitial.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (TopCat.of.{u1} PEmpty.{succ u1} instTopologicalSpacePEmpty.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.is_initial_pempty TopCat.isInitialPEmptyₓ'. -/
 /-- The initial object of `Top` is `pempty`. -/
 def isInitialPEmpty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   haveI : ∀ X, Unique (TopCat.of PEmpty.{u + 1} ⟶ X) := fun X =>
@@ -285,12 +207,6 @@ def isInitialPEmpty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   limits.is_initial.of_unique _
 #align Top.is_initial_pempty TopCat.isInitialPEmpty
 
-/- warning: Top.initial_iso_pempty -> TopCat.initialIsoPEmpty is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.initialIsoPEmpty._proof_1.{u1}) (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
-but is expected to have type
-  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{0, 0, u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Discrete.{0} PEmpty.{1}) (CategoryTheory.discreteCategory.{0} PEmpty.{1}) TopCat.topCat_hasColimitsOfSize.{0, u1})) (TopCat.of.{u1} PEmpty.{succ u1} instTopologicalSpacePEmpty.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.initial_iso_pempty TopCat.initialIsoPEmptyₓ'. -/
 /-- The initial object of `Top` is `pempty`. -/
 def initialIsoPEmpty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
   initialIsInitial.uniqueUpToIso isInitialPEmpty
Diff
@@ -97,16 +97,8 @@ Generally you should just use `limit.is_limit F`, unless you need the actual def
 -/
 def limitConeIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitCone F)
     where
-  lift S :=
-    {
-      toFun := fun x =>
-        ⟨fun j => S.π.app _ x, fun i j f => by
-          dsimp
-          erw [← S.w f]
-          rfl⟩ }
-  uniq S m h := by
-    ext : 3
-    simpa [← h]
+  lift S := { toFun := fun x => ⟨fun j => S.π.app _ x, fun i j f => by dsimp; erw [← S.w f]; rfl⟩ }
+  uniq S m h := by ext : 3; simpa [← h]
 #align Top.limit_cone_is_limit TopCat.limitConeIsLimit
 
 /- warning: Top.limit_cone_infi_is_limit -> TopCat.limitConeInfiIsLimit is a dubious translation:
Diff
@@ -80,7 +80,7 @@ def limitConeInfi (F : J ⥤ TopCat.{max v u}) : Cone F
       ⨅ j, (F.obj j).str.induced ((Types.limitCone (F ⋙ forget)).π.app j)⟩
   π :=
     { app := fun j =>
-        ⟨(Types.limitCone (F ⋙ forget)).π.app j, continuous_iff_le_induced.mpr (infᵢ_le _ _)⟩
+        ⟨(Types.limitCone (F ⋙ forget)).π.app j, continuous_iff_le_induced.mpr (iInf_le _ _)⟩
       naturality' := fun j j' f =>
         ContinuousMap.coe_injective ((Types.limitCone (F ⋙ forget)).π.naturality f) }
 #align Top.limit_cone_infi TopCat.limitConeInfi
@@ -124,7 +124,7 @@ def limitConeInfiIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitConeInfi F
   refine' is_limit.of_faithful forget (types.limit_cone_is_limit _) (fun s => ⟨_, _⟩) fun s => rfl
   exact
     continuous_iff_coinduced_le.mpr
-      (le_infᵢ fun j =>
+      (le_iInf fun j =>
         coinduced_le_iff_le_induced.mp <|
           (continuous_iff_coinduced_le.mp (s.π.app j).Continuous : _))
 #align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimit
@@ -188,7 +188,7 @@ def colimitCocone (F : J ⥤ TopCat.{max v u}) : Cocone F
       ⨆ j, (F.obj j).str.coinduced ((Types.colimitCocone (F ⋙ forget)).ι.app j)⟩
   ι :=
     { app := fun j =>
-        ⟨(Types.colimitCocone (F ⋙ forget)).ι.app j, continuous_iff_coinduced_le.mpr (le_supᵢ _ j)⟩
+        ⟨(Types.colimitCocone (F ⋙ forget)).ι.app j, continuous_iff_coinduced_le.mpr (le_iSup _ j)⟩
       naturality' := fun j j' f =>
         ContinuousMap.coe_injective ((Types.colimitCocone (F ⋙ forget)).ι.naturality f) }
 #align Top.colimit_cocone TopCat.colimitCocone
@@ -209,7 +209,7 @@ def colimitCoconeIsColimit (F : J ⥤ TopCat.{max v u}) : IsColimit (colimitCoco
     is_colimit.of_faithful forget (types.colimit_cocone_is_colimit _) (fun s => ⟨_, _⟩) fun s => rfl
   exact
     continuous_iff_le_induced.mpr
-      (supᵢ_le fun j =>
+      (iSup_le fun j =>
         coinduced_le_iff_le_induced.mp <|
           (continuous_iff_coinduced_le.mp (s.ι.app j).Continuous : _))
 #align Top.colimit_cocone_is_colimit TopCat.colimitCoconeIsColimit
Diff
@@ -152,9 +152,9 @@ instance topCat_hasLimits : HasLimits TopCat.{u} :=
 
 /- warning: Top.forget_preserves_limits_of_size -> TopCat.forgetPreservesLimitsOfSize is a dubious translation:
 lean 3 declaration is
-  CategoryTheory.Limits.PreservesLimitsOfSize.{v, v, max v u, max v u, succ (max v u), succ (max v u)} TopCat.{max v u} TopCat.largeCategory.{max v u} Type.{max v u} CategoryTheory.types.{max v u} (CategoryTheory.forget.{succ (max v u), max v u, max v u} TopCat.{max v u} TopCat.largeCategory.{max v u} TopCat.concreteCategory.{max v u})
+  CategoryTheory.Limits.PreservesLimitsOfSize.{u2, u2, max u2 u1, max u2 u1, succ (max u2 u1), succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} (CategoryTheory.forget.{succ (max u2 u1), max u2 u1, max u2 u1} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} TopCat.concreteCategory.{max u2 u1})
 but is expected to have type
-  CategoryTheory.Limits.PreservesLimitsOfSize.{v, v, v, v, succ v, succ v} TopCat.{v} instTopCatLargeCategory.{v} Type.{v} CategoryTheory.types.{v} (CategoryTheory.forget.{succ v, v, v} TopCat.{v} instTopCatLargeCategory.{v} TopCat.concreteCategory.{v})
+  CategoryTheory.Limits.PreservesLimitsOfSize.{u1, u1, max u2 u1, max u2 u1, succ (max u2 u1), succ (max u2 u1)} TopCat.{max u2 u1} instTopCatLargeCategory.{max u2 u1} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} (CategoryTheory.forget.{succ (max u2 u1), max u2 u1, max u2 u1} TopCat.{max u2 u1} instTopCatLargeCategory.{max u2 u1} TopCat.concreteCategory.{max u2 u1})
 Case conversion may be inaccurate. Consider using '#align Top.forget_preserves_limits_of_size TopCat.forgetPreservesLimitsOfSizeₓ'. -/
 instance forgetPreservesLimitsOfSize :
     PreservesLimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
Diff
@@ -256,53 +256,53 @@ instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Ty
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
 -/
 
-/- warning: Top.is_terminal_punit -> TopCat.isTerminalPunit is a dubious translation:
+/- warning: Top.is_terminal_punit -> TopCat.isTerminalPUnit is a dubious translation:
 lean 3 declaration is
   CategoryTheory.Limits.IsTerminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
 but is expected to have type
   CategoryTheory.Limits.IsTerminal.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.is_terminal_punit TopCat.isTerminalPunitₓ'. -/
+Case conversion may be inaccurate. Consider using '#align Top.is_terminal_punit TopCat.isTerminalPUnitₓ'. -/
 /-- The terminal object of `Top` is `punit`. -/
-def isTerminalPunit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
+def isTerminalPUnit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   haveI : ∀ X, Unique (X ⟶ TopCat.of PUnit.{u + 1}) := fun X =>
     ⟨⟨⟨fun x => PUnit.unit, by continuity⟩⟩, fun f => by ext⟩
   limits.is_terminal.of_unique _
-#align Top.is_terminal_punit TopCat.isTerminalPunit
+#align Top.is_terminal_punit TopCat.isTerminalPUnit
 
-/- warning: Top.terminal_iso_punit -> TopCat.terminalIsoPunit is a dubious translation:
+/- warning: Top.terminal_iso_punit -> TopCat.terminalIsoPUnit is a dubious translation:
 lean 3 declaration is
-  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.terminalIsoPunit._proof_1.{u1}) (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
+  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.terminalIsoPUnit._proof_1.{u1}) (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
 but is expected to have type
   CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{0, 0, u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Discrete.{0} PEmpty.{1}) (CategoryTheory.discreteCategory.{0} PEmpty.{1}) TopCat.topCat_hasLimitsOfSize.{0, u1})) (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.terminal_iso_punit TopCat.terminalIsoPunitₓ'. -/
+Case conversion may be inaccurate. Consider using '#align Top.terminal_iso_punit TopCat.terminalIsoPUnitₓ'. -/
 /-- The terminal object of `Top` is `punit`. -/
-def terminalIsoPunit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
-  terminalIsTerminal.uniqueUpToIso isTerminalPunit
-#align Top.terminal_iso_punit TopCat.terminalIsoPunit
+def terminalIsoPUnit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
+  terminalIsTerminal.uniqueUpToIso isTerminalPUnit
+#align Top.terminal_iso_punit TopCat.terminalIsoPUnit
 
-/- warning: Top.is_initial_pempty -> TopCat.isInitialPempty is a dubious translation:
+/- warning: Top.is_initial_pempty -> TopCat.isInitialPEmpty is a dubious translation:
 lean 3 declaration is
   CategoryTheory.Limits.IsInitial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
 but is expected to have type
   CategoryTheory.Limits.IsInitial.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (TopCat.of.{u1} PEmpty.{succ u1} instTopologicalSpacePEmpty.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.is_initial_pempty TopCat.isInitialPemptyₓ'. -/
+Case conversion may be inaccurate. Consider using '#align Top.is_initial_pempty TopCat.isInitialPEmptyₓ'. -/
 /-- The initial object of `Top` is `pempty`. -/
-def isInitialPempty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
+def isInitialPEmpty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   haveI : ∀ X, Unique (TopCat.of PEmpty.{u + 1} ⟶ X) := fun X =>
     ⟨⟨⟨fun x => x.elim, by continuity⟩⟩, fun f => by ext ⟨⟩⟩
   limits.is_initial.of_unique _
-#align Top.is_initial_pempty TopCat.isInitialPempty
+#align Top.is_initial_pempty TopCat.isInitialPEmpty
 
-/- warning: Top.initial_iso_pempty -> TopCat.initialIsoPempty is a dubious translation:
+/- warning: Top.initial_iso_pempty -> TopCat.initialIsoPEmpty is a dubious translation:
 lean 3 declaration is
-  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.initialIsoPempty._proof_1.{u1}) (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
+  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.initialIsoPEmpty._proof_1.{u1}) (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
 but is expected to have type
   CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{0, 0, u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Discrete.{0} PEmpty.{1}) (CategoryTheory.discreteCategory.{0} PEmpty.{1}) TopCat.topCat_hasColimitsOfSize.{0, u1})) (TopCat.of.{u1} PEmpty.{succ u1} instTopologicalSpacePEmpty.{u1})
-Case conversion may be inaccurate. Consider using '#align Top.initial_iso_pempty TopCat.initialIsoPemptyₓ'. -/
+Case conversion may be inaccurate. Consider using '#align Top.initial_iso_pempty TopCat.initialIsoPEmptyₓ'. -/
 /-- The initial object of `Top` is `pempty`. -/
-def initialIsoPempty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
-  initialIsInitial.uniqueUpToIso isInitialPempty
-#align Top.initial_iso_pempty TopCat.initialIsoPempty
+def initialIsoPEmpty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
+  initialIsInitial.uniqueUpToIso isInitialPEmpty
+#align Top.initial_iso_pempty TopCat.initialIsoPEmpty
 
 end TopCat
 
Diff
@@ -256,6 +256,12 @@ instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Ty
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
 -/
 
+/- warning: Top.is_terminal_punit -> TopCat.isTerminalPunit is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Limits.IsTerminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
+but is expected to have type
+  CategoryTheory.Limits.IsTerminal.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})
+Case conversion may be inaccurate. Consider using '#align Top.is_terminal_punit TopCat.isTerminalPunitₓ'. -/
 /-- The terminal object of `Top` is `punit`. -/
 def isTerminalPunit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   haveI : ∀ X, Unique (X ⟶ TopCat.of PUnit.{u + 1}) := fun X =>
@@ -263,11 +269,23 @@ def isTerminalPunit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   limits.is_terminal.of_unique _
 #align Top.is_terminal_punit TopCat.isTerminalPunit
 
+/- warning: Top.terminal_iso_punit -> TopCat.terminalIsoPunit is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.terminalIsoPunit._proof_1.{u1}) (TopCat.of.{u1} PUnit.{succ u1} PUnit.topologicalSpace.{u1})
+but is expected to have type
+  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.terminal.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{0, 0, u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Discrete.{0} PEmpty.{1}) (CategoryTheory.discreteCategory.{0} PEmpty.{1}) TopCat.topCat_hasLimitsOfSize.{0, u1})) (TopCat.of.{u1} PUnit.{succ u1} instTopologicalSpacePUnit.{u1})
+Case conversion may be inaccurate. Consider using '#align Top.terminal_iso_punit TopCat.terminalIsoPunitₓ'. -/
 /-- The terminal object of `Top` is `punit`. -/
 def terminalIsoPunit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
   terminalIsTerminal.uniqueUpToIso isTerminalPunit
 #align Top.terminal_iso_punit TopCat.terminalIsoPunit
 
+/- warning: Top.is_initial_pempty -> TopCat.isInitialPempty is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Limits.IsInitial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
+but is expected to have type
+  CategoryTheory.Limits.IsInitial.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (TopCat.of.{u1} PEmpty.{succ u1} instTopologicalSpacePEmpty.{u1})
+Case conversion may be inaccurate. Consider using '#align Top.is_initial_pempty TopCat.isInitialPemptyₓ'. -/
 /-- The initial object of `Top` is `pempty`. -/
 def isInitialPempty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   haveI : ∀ X, Unique (TopCat.of PEmpty.{u + 1} ⟶ X) := fun X =>
@@ -275,6 +293,12 @@ def isInitialPempty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   limits.is_initial.of_unique _
 #align Top.is_initial_pempty TopCat.isInitialPempty
 
+/- warning: Top.initial_iso_pempty -> TopCat.initialIsoPempty is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} TopCat.largeCategory.{u1} TopCat.initialIsoPempty._proof_1.{u1}) (TopCat.of.{u1} PEmpty.{succ u1} PEmpty.topologicalSpace.{u1})
+but is expected to have type
+  CategoryTheory.Iso.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.initial.{u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{0, 0, u1, succ u1} TopCat.{u1} instTopCatLargeCategory.{u1} (CategoryTheory.Discrete.{0} PEmpty.{1}) (CategoryTheory.discreteCategory.{0} PEmpty.{1}) TopCat.topCat_hasColimitsOfSize.{0, u1})) (TopCat.of.{u1} PEmpty.{succ u1} instTopologicalSpacePEmpty.{u1})
+Case conversion may be inaccurate. Consider using '#align Top.initial_iso_pempty TopCat.initialIsoPemptyₓ'. -/
 /-- The initial object of `Top` is `pempty`. -/
 def initialIsoPempty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
   initialIsInitial.uniqueUpToIso isInitialPempty
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
 
 ! This file was ported from Lean 3 source module topology.category.Top.limits.basic
-! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
+! leanprover-community/mathlib commit f2b757fc5c341d88741b9c4630b1e8ba973c5726
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.CategoryTheory.Limits.ConcreteCategory
 /-!
 # The category of topological spaces has all limits and colimits
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Further, these limits and colimits are preserved by the forgetful functor --- that is, the
 underlying types are just the limits in the category of types.
 -/
Diff
@@ -38,6 +38,12 @@ variable {J : Type v} [SmallCategory J]
 -- mathport name: exprforget
 local notation "forget" => forget TopCat
 
+/- warning: Top.limit_cone -> TopCat.limitCone is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F
+Case conversion may be inaccurate. Consider using '#align Top.limit_cone TopCat.limitConeₓ'. -/
 /-- A choice of limit cone for a functor `F : J ⥤ Top`.
 Generally you should just use `limit.cone F`, unless you need the actual definition
 (which is in terms of `types.limit_cone`).
@@ -53,6 +59,12 @@ def limitCone (F : J ⥤ TopCat.{max v u}) : Cone F
             show Continuous ((fun u : ∀ j : J, F.obj j => u j) ∘ Subtype.val) by continuity } }
 #align Top.limit_cone TopCat.limitCone
 
+/- warning: Top.limit_cone_infi -> TopCat.limitConeInfi is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F
+Case conversion may be inaccurate. Consider using '#align Top.limit_cone_infi TopCat.limitConeInfiₓ'. -/
 /-- A choice of limit cone for a functor `F : J ⥤ Top` whose topology is defined as an
 infimum of topologies infimum.
 Generally you should just use `limit.cone F`, unless you need the actual definition
@@ -70,6 +82,12 @@ def limitConeInfi (F : J ⥤ TopCat.{max v u}) : Cone F
         ContinuousMap.coe_injective ((Types.limitCone (F ⋙ forget)).π.naturality f) }
 #align Top.limit_cone_infi TopCat.limitConeInfi
 
+/- warning: Top.limit_cone_is_limit -> TopCat.limitConeIsLimit is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F (TopCat.limitCone.{u1, u2} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F (TopCat.limitCone.{u1, u2} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align Top.limit_cone_is_limit TopCat.limitConeIsLimitₓ'. -/
 /-- The chosen cone `Top.limit_cone F` for a functor `F : J ⥤ Top` is a limit cone.
 Generally you should just use `limit.is_limit F`, unless you need the actual definition
 (which is in terms of `types.limit_cone_is_limit`).
@@ -88,6 +106,12 @@ def limitConeIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitCone F)
     simpa [← h]
 #align Top.limit_cone_is_limit TopCat.limitConeIsLimit
 
+/- warning: Top.limit_cone_infi_is_limit -> TopCat.limitConeInfiIsLimit is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F (TopCat.limitConeInfi.{u1, u2} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F (TopCat.limitConeInfi.{u1, u2} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimitₓ'. -/
 /-- The chosen cone `Top.limit_cone_infi F` for a functor `F : J ⥤ Top` is a limit cone.
 Generally you should just use `limit.is_limit F`, unless you need the actual definition
 (which is in terms of `types.limit_cone_is_limit`).
@@ -102,6 +126,12 @@ def limitConeInfiIsLimit (F : J ⥤ TopCat.{max v u}) : IsLimit (limitConeInfi F
           (continuous_iff_coinduced_le.mp (s.π.app j).Continuous : _))
 #align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimit
 
+/- warning: Top.Top_has_limits_of_size -> TopCat.topCat_hasLimitsOfSize is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Limits.HasLimitsOfSize.{u2, u2, max u2 u1, succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}
+but is expected to have type
+  CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}
+Case conversion may be inaccurate. Consider using '#align Top.Top_has_limits_of_size TopCat.topCat_hasLimitsOfSizeₓ'. -/
 instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCat.{max v u}
     where HasLimitsOfShape J 𝒥 :=
     {
@@ -111,10 +141,18 @@ instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCat.{max v u}
             IsLimit := limit_cone_is_limit F } }
 #align Top.Top_has_limits_of_size TopCat.topCat_hasLimitsOfSize
 
+#print TopCat.topCat_hasLimits /-
 instance topCat_hasLimits : HasLimits TopCat.{u} :=
   TopCat.topCat_hasLimitsOfSize.{u, u}
 #align Top.Top_has_limits TopCat.topCat_hasLimits
+-/
 
+/- warning: Top.forget_preserves_limits_of_size -> TopCat.forgetPreservesLimitsOfSize is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Limits.PreservesLimitsOfSize.{v, v, max v u, max v u, succ (max v u), succ (max v u)} TopCat.{max v u} TopCat.largeCategory.{max v u} Type.{max v u} CategoryTheory.types.{max v u} (CategoryTheory.forget.{succ (max v u), max v u, max v u} TopCat.{max v u} TopCat.largeCategory.{max v u} TopCat.concreteCategory.{max v u})
+but is expected to have type
+  CategoryTheory.Limits.PreservesLimitsOfSize.{v, v, v, v, succ v, succ v} TopCat.{v} instTopCatLargeCategory.{v} Type.{v} CategoryTheory.types.{v} (CategoryTheory.forget.{succ v, v, v} TopCat.{v} instTopCatLargeCategory.{v} TopCat.concreteCategory.{v})
+Case conversion may be inaccurate. Consider using '#align Top.forget_preserves_limits_of_size TopCat.forgetPreservesLimitsOfSizeₓ'. -/
 instance forgetPreservesLimitsOfSize :
     PreservesLimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
     where PreservesLimitsOfShape J 𝒥 :=
@@ -124,10 +162,18 @@ instance forgetPreservesLimitsOfSize :
           (types.limit_cone_is_limit (F ⋙ forget)) }
 #align Top.forget_preserves_limits_of_size TopCat.forgetPreservesLimitsOfSize
 
+#print TopCat.forgetPreservesLimits /-
 instance forgetPreservesLimits : PreservesLimits (forget : TopCat.{u} ⥤ Type u) :=
   TopCat.forgetPreservesLimitsOfSize.{u, u}
 #align Top.forget_preserves_limits TopCat.forgetPreservesLimits
+-/
 
+/- warning: Top.colimit_cocone -> TopCat.colimitCocone is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.Cocone.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F
+Case conversion may be inaccurate. Consider using '#align Top.colimit_cocone TopCat.colimitCoconeₓ'. -/
 /-- A choice of colimit cocone for a functor `F : J ⥤ Top`.
 Generally you should just use `colimit.coone F`, unless you need the actual definition
 (which is in terms of `types.colimit_cocone`).
@@ -144,6 +190,12 @@ def colimitCocone (F : J ⥤ TopCat.{max v u}) : Cocone F
         ContinuousMap.coe_injective ((Types.colimitCocone (F ⋙ forget)).ι.naturality f) }
 #align Top.colimit_cocone TopCat.colimitCocone
 
+/- warning: Top.colimit_cocone_is_colimit -> TopCat.colimitCoconeIsColimit is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u2}} [_inst_1 : CategoryTheory.SmallCategory.{u2} J] (F : CategoryTheory.Functor.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}), CategoryTheory.Limits.IsColimit.{u2, max u2 u1, u2, succ (max u2 u1)} J _inst_1 TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} F (TopCat.colimitCocone.{u1, u2} J _inst_1 F)
+but is expected to have type
+  forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}), CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1} F (TopCat.colimitCocone.{u1, u2} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align Top.colimit_cocone_is_colimit TopCat.colimitCoconeIsColimitₓ'. -/
 /-- The chosen cocone `Top.colimit_cocone F` for a functor `F : J ⥤ Top` is a colimit cocone.
 Generally you should just use `colimit.is_colimit F`, unless you need the actual definition
 (which is in terms of `types.colimit_cocone_is_colimit`).
@@ -159,6 +211,12 @@ def colimitCoconeIsColimit (F : J ⥤ TopCat.{max v u}) : IsColimit (colimitCoco
           (continuous_iff_coinduced_le.mp (s.ι.app j).Continuous : _))
 #align Top.colimit_cocone_is_colimit TopCat.colimitCoconeIsColimit
 
+/- warning: Top.Top_has_colimits_of_size -> TopCat.topCat_hasColimitsOfSize is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Limits.HasColimitsOfSize.{u2, u2, max u2 u1, succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1}
+but is expected to have type
+  CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TopCatMax.{u1, u2} instTopCatLargeCategory.{max u2 u1}
+Case conversion may be inaccurate. Consider using '#align Top.Top_has_colimits_of_size TopCat.topCat_hasColimitsOfSizeₓ'. -/
 instance topCat_hasColimitsOfSize : HasColimitsOfSize.{v} TopCat.{max v u}
     where HasColimitsOfShape J 𝒥 :=
     {
@@ -168,10 +226,18 @@ instance topCat_hasColimitsOfSize : HasColimitsOfSize.{v} TopCat.{max v u}
             IsColimit := colimit_cocone_is_colimit F } }
 #align Top.Top_has_colimits_of_size TopCat.topCat_hasColimitsOfSize
 
+#print TopCat.topCat_hasColimits /-
 instance topCat_hasColimits : HasColimits TopCat.{u} :=
   TopCat.topCat_hasColimitsOfSize.{u, u}
 #align Top.Top_has_colimits TopCat.topCat_hasColimits
+-/
 
+/- warning: Top.forget_preserves_colimits_of_size -> TopCat.forgetPreservesColimitsOfSize is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Limits.PreservesColimitsOfSize.{u2, u2, max u2 u1, max u2 u1, succ (max u2 u1), succ (max u2 u1)} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} (CategoryTheory.forget.{succ (max u2 u1), max u2 u1, max u2 u1} TopCat.{max u2 u1} TopCat.largeCategory.{max u2 u1} TopCat.concreteCategory.{max u2 u1})
+but is expected to have type
+  CategoryTheory.Limits.PreservesColimitsOfSize.{u1, u1, max u1 u2, max u1 u2, succ (max u1 u2), succ (max u1 u2)} TopCat.{max u1 u2} instTopCatLargeCategory.{max u1 u2} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.forget.{succ (max u1 u2), max u1 u2, max u1 u2} TopCat.{max u1 u2} instTopCatLargeCategory.{max u1 u2} TopCat.concreteCategory.{max u1 u2})
+Case conversion may be inaccurate. Consider using '#align Top.forget_preserves_colimits_of_size TopCat.forgetPreservesColimitsOfSizeₓ'. -/
 instance forgetPreservesColimitsOfSize :
     PreservesColimitsOfSize.{v, v} (forget : TopCat.{max v u} ⥤ Type max v u)
     where PreservesColimitsOfShape J 𝒥 :=
@@ -181,9 +247,11 @@ instance forgetPreservesColimitsOfSize :
           (types.colimit_cocone_is_colimit (F ⋙ forget)) }
 #align Top.forget_preserves_colimits_of_size TopCat.forgetPreservesColimitsOfSize
 
+#print TopCat.forgetPreservesColimits /-
 instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Type u) :=
   TopCat.forgetPreservesColimitsOfSize.{u, u}
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
+-/
 
 /-- The terminal object of `Top` is `punit`. -/
 def isTerminalPunit : IsTerminal (TopCat.of PUnit.{u + 1}) :=

Changes in mathlib4

mathlib3
mathlib4
refactor: generalize universes for colimits in Type (#11148)

This is a smaller version of #7020. Before this PR, for limits, we gave instances for small indexing categories, but for colimits, we gave instances for TypeMax. This PR changes so that we give instances for small indexing categories in both cases. This is more general and also more uniform.

Co-authored-by: Joël Riou <rioujoel@gmail.com>

Diff
@@ -152,15 +152,16 @@ Generally you should just use `colimit.cocone F`, unless you need the actual def
 -/
 def colimitCocone (F : J ⥤ TopCatMax.{v, u}) : Cocone F where
   pt :=
-    ⟨(Types.colimitCocone.{v,u} (F ⋙ forget)).pt,
-      ⨆ j, (F.obj j).str.coinduced ((Types.colimitCocone (F ⋙ forget)).ι.app j)⟩
+    ⟨(Types.TypeMax.colimitCocone.{v,u} (F ⋙ forget)).pt,
+      ⨆ j, (F.obj j).str.coinduced ((Types.TypeMax.colimitCocone (F ⋙ forget)).ι.app j)⟩
   ι :=
     { app := fun j =>
-        ⟨(Types.colimitCocone (F ⋙ forget)).ι.app j, continuous_iff_coinduced_le.mpr <|
+        ⟨(Types.TypeMax.colimitCocone (F ⋙ forget)).ι.app j, continuous_iff_coinduced_le.mpr <|
           -- Porting note: didn't need function before
-          le_iSup (fun j => coinduced ((Types.colimitCocone (F ⋙ forget)).ι.app j) (F.obj j).str) j⟩
+          le_iSup (fun j =>
+            coinduced ((Types.TypeMax.colimitCocone (F ⋙ forget)).ι.app j) (F.obj j).str) j⟩
       naturality := fun _ _ f =>
-        ContinuousMap.coe_injective ((Types.colimitCocone (F ⋙ forget)).ι.naturality f) }
+        ContinuousMap.coe_injective ((Types.TypeMax.colimitCocone (F ⋙ forget)).ι.naturality f) }
 #align Top.colimit_cocone TopCat.colimitCocone
 
 /-- The chosen cocone `TopCat.colimitCocone F` for a functor `F : J ⥤ TopCat` is a colimit cocone.
@@ -169,7 +170,7 @@ Generally you should just use `colimit.isColimit F`, unless you need the actual
 -/
 def colimitCoconeIsColimit (F : J ⥤ TopCatMax.{v, u}) : IsColimit (colimitCocone F) := by
   refine
-    IsColimit.ofFaithful forget (Types.colimitCoconeIsColimit _) (fun s =>
+    IsColimit.ofFaithful forget (Types.TypeMax.colimitCoconeIsColimit.{v, u} _) (fun s =>
     -- Porting note: it appears notation for forget breaks dot notation (also above)
     -- Porting note: previously function was inferred
       ⟨Quot.lift (fun p => (Functor.mapCocone forget s).ι.app p.fst p.snd) ?_, ?_⟩) fun s => ?_
@@ -203,7 +204,7 @@ instance forgetPreservesColimitsOfSize :
   preservesColimitsOfShape :=
     { preservesColimit := fun {F} =>
         preservesColimitOfPreservesColimitCocone (colimitCoconeIsColimit F)
-          (Types.colimitCoconeIsColimit (F ⋙ forget)) }
+          (Types.TypeMax.colimitCoconeIsColimit (F ⋙ forget)) }
 #align Top.forget_preserves_colimits_of_size TopCat.forgetPreservesColimitsOfSize
 
 instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Type u) :=
chore: uneven spacing for ⟨ ⟩ (#10014)

This cleans up instances of

⟨ foo, bar⟩

and

⟨foo, bar ⟩

where spaces a on the inside one side, but not on the other side. Fixing this by removing the extra space.

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -109,7 +109,7 @@ Generally you should just use `limit.isLimit F`, unless you need the actual defi
 def limitConeInfiIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitConeInfi.{v,u} F) := by
   refine IsLimit.ofFaithful forget (Types.limitConeIsLimit.{v,u} (F ⋙ forget))
     -- Porting note: previously could infer all ?_ except continuity
-    (fun s => ⟨fun v => ⟨ fun j => (Functor.mapCone forget s).π.app j v, ?_⟩, ?_⟩) fun s => ?_
+    (fun s => ⟨fun v => ⟨fun j => (Functor.mapCone forget s).π.app j v, ?_⟩, ?_⟩) fun s => ?_
   · dsimp [Functor.sections]
     intro _ _ _
     rw [← comp_apply', forget_map_eq_coe, ← s.π.naturality, forget_map_eq_coe]
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
 -/
 import Mathlib.Topology.Category.TopCat.Basic
-import Mathlib.CategoryTheory.Limits.ConcreteCategory
+import Mathlib.CategoryTheory.Limits.Types
 
 #align_import topology.category.Top.limits.basic from "leanprover-community/mathlib"@"178a32653e369dce2da68dc6b2694e385d484ef1"
 
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -91,7 +91,7 @@ def limitConeIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitCone.{v,u} F)
           erw [← S.w f]
           rfl⟩
       continuous_toFun :=
-        Continuous.subtype_mk (continuous_pi <| fun j => (S.π.app j).2) fun x i j f => by
+        Continuous.subtype_mk (continuous_pi fun j => (S.π.app j).2) fun x i j f => by
           dsimp
           rw [← S.w f]
           rfl }
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -112,7 +112,7 @@ def limitConeInfiIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitConeInfi.{
     (fun s => ⟨fun v => ⟨ fun j => (Functor.mapCone forget s).π.app j v, ?_⟩, ?_⟩) fun s => ?_
   · dsimp [Functor.sections]
     intro _ _ _
-    rw [←comp_apply', forget_map_eq_coe, ←s.π.naturality, forget_map_eq_coe]
+    rw [← comp_apply', forget_map_eq_coe, ← s.π.naturality, forget_map_eq_coe]
     dsimp
     rw [Category.id_comp]
   · exact
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
-
-! This file was ported from Lean 3 source module topology.category.Top.limits.basic
-! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.Category.TopCat.Basic
 import Mathlib.CategoryTheory.Limits.ConcreteCategory
 
+#align_import topology.category.Top.limits.basic from "leanprover-community/mathlib"@"178a32653e369dce2da68dc6b2694e385d484ef1"
+
 /-!
 # The category of topological spaces has all limits and colimits
 
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -99,7 +99,7 @@ def limitConeIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitCone.{v,u} F)
           rw [← S.w f]
           rfl }
   uniq S m h := by
-    apply ContinuousMap.ext ; intros a ; apply Subtype.ext ; funext j
+    apply ContinuousMap.ext; intros a; apply Subtype.ext; funext j
     dsimp
     rw [← h]
     rfl
feat: change ConcreteCategory.hasCoeToFun to FunLike (#4693)
Diff
@@ -115,7 +115,7 @@ def limitConeInfiIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitConeInfi.{
     (fun s => ⟨fun v => ⟨ fun j => (Functor.mapCone forget s).π.app j v, ?_⟩, ?_⟩) fun s => ?_
   · dsimp [Functor.sections]
     intro _ _ _
-    rw [←comp_apply, ←s.π.naturality]
+    rw [←comp_apply', forget_map_eq_coe, ←s.π.naturality, forget_map_eq_coe]
     dsimp
     rw [Category.id_comp]
   · exact
@@ -178,7 +178,7 @@ def colimitCoconeIsColimit (F : J ⥤ TopCatMax.{v, u}) : IsColimit (colimitCoco
       ⟨Quot.lift (fun p => (Functor.mapCocone forget s).ι.app p.fst p.snd) ?_, ?_⟩) fun s => ?_
   · intro _ _ ⟨_, h⟩
     dsimp
-    rw [h, Functor.comp_map, ← comp_apply, s.ι.naturality]
+    rw [h, Functor.comp_map, ← comp_apply', s.ι.naturality]
     dsimp
     rw [Category.comp_id]
   · exact
chore: rename Top->TopCat (#4089)
Diff
@@ -8,7 +8,7 @@ Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
-import Mathlib.Topology.Category.Top.Basic
+import Mathlib.Topology.Category.TopCat.Basic
 import Mathlib.CategoryTheory.Limits.ConcreteCategory
 
 /-!
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -77,7 +77,7 @@ def limitConeInfi (F : J ⥤ TopCatMax.{v, u}) : Cone F where
       ⨅ j, (F.obj j).str.induced ((Types.limitCone.{v,u} (F ⋙ forget)).π.app j)⟩
   π :=
     { app := fun j =>
-        ⟨(Types.limitCone.{v,u} (F ⋙ forget)).π.app j, continuous_iff_le_induced.mpr (infᵢ_le _ _)⟩
+        ⟨(Types.limitCone.{v,u} (F ⋙ forget)).π.app j, continuous_iff_le_induced.mpr (iInf_le _ _)⟩
       naturality := fun _ _ f =>
         ContinuousMap.coe_injective ((Types.limitCone.{v,u} (F ⋙ forget)).π.naturality f) }
 #align Top.limit_cone_infi TopCat.limitConeInfi
@@ -120,7 +120,7 @@ def limitConeInfiIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitConeInfi.{
     rw [Category.id_comp]
   · exact
     continuous_iff_coinduced_le.mpr
-      (le_infᵢ fun j =>
+      (le_iInf fun j =>
         coinduced_le_iff_le_induced.mp <|
           (continuous_iff_coinduced_le.mp (s.π.app j).continuous : _))
   · rfl
@@ -161,7 +161,7 @@ def colimitCocone (F : J ⥤ TopCatMax.{v, u}) : Cocone F where
     { app := fun j =>
         ⟨(Types.colimitCocone (F ⋙ forget)).ι.app j, continuous_iff_coinduced_le.mpr <|
           -- Porting note: didn't need function before
-          le_supᵢ (fun j => coinduced ((Types.colimitCocone (F ⋙ forget)).ι.app j) (F.obj j).str) j⟩
+          le_iSup (fun j => coinduced ((Types.colimitCocone (F ⋙ forget)).ι.app j) (F.obj j).str) j⟩
       naturality := fun _ _ f =>
         ContinuousMap.coe_injective ((Types.colimitCocone (F ⋙ forget)).ι.naturality f) }
 #align Top.colimit_cocone TopCat.colimitCocone
@@ -183,7 +183,7 @@ def colimitCoconeIsColimit (F : J ⥤ TopCatMax.{v, u}) : IsColimit (colimitCoco
     rw [Category.comp_id]
   · exact
     continuous_iff_le_induced.mpr
-      (supᵢ_le fun j =>
+      (iSup_le fun j =>
         coinduced_le_iff_le_induced.mp <|
           (continuous_iff_coinduced_le.mp (s.ι.app j).continuous : _))
   · rfl
feat: port Topology.Category.Top.Limits.Products (#3709)

Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: Matthew Robert Ballard <100034030+mattrobball@users.noreply.github.com>

Diff
@@ -138,15 +138,15 @@ instance topCat_hasLimits : HasLimits TopCat.{u} :=
   TopCat.topCat_hasLimitsOfSize.{u, u}
 #align Top.Top_has_limits TopCat.topCat_hasLimits
 
-instance forgetPreservesLimitsOfSize : PreservesLimitsOfSize.{v, v} forget where
+instance forgetPreservesLimitsOfSize : PreservesLimitsOfSize forget where
   preservesLimitsOfShape {_} :=
     { preservesLimit := fun {F} =>
-        preservesLimitOfPreservesLimitCone (limitConeIsLimit.{v,v} F)
-          (Types.limitConeIsLimit.{v,v} (F ⋙ forget)) }
+        preservesLimitOfPreservesLimitCone (limitConeIsLimit.{v,u} F)
+          (Types.limitConeIsLimit.{v,u} (F ⋙ forget)) }
 #align Top.forget_preserves_limits_of_size TopCat.forgetPreservesLimitsOfSize
 
 instance forgetPreservesLimits : PreservesLimits forget :=
-  TopCat.forgetPreservesLimitsOfSize.{u}
+  TopCat.forgetPreservesLimitsOfSize.{u,u}
 #align Top.forget_preserves_limits TopCat.forgetPreservesLimits
 
 /-- A choice of colimit cocone for a functor `F : J ⥤ TopCat`.
chore: tidy various files (#3848)
Diff
@@ -21,13 +21,7 @@ underlying types are just the limits in the category of types.
 -- Porting note: every ML3 decl has an uppercase letter
 set_option linter.uppercaseLean3 false
 
-open TopologicalSpace
-
-open CategoryTheory
-
-open CategoryTheory.Limits
-
-open Opposite
+open TopologicalSpace CategoryTheory CategoryTheory.Limits Opposite
 
 /--
 Universe inequalities in Mathlib 3 are expressed through use of `max u v`. Unfortunately,
@@ -132,8 +126,8 @@ def limitConeInfiIsLimit (F : J ⥤ TopCatMax.{v, u}) : IsLimit (limitConeInfi.{
   · rfl
 #align Top.limit_cone_infi_is_limit TopCat.limitConeInfiIsLimit
 
-instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCatMax.{v, u}
-    where has_limits_of_shape _ :=
+instance topCat_hasLimitsOfSize : HasLimitsOfSize.{v} TopCatMax.{v, u} where
+  has_limits_of_shape _ :=
     { has_limit := fun F =>
         HasLimit.mk
           { cone := limitCone.{v,u} F
@@ -144,8 +138,7 @@ instance topCat_hasLimits : HasLimits TopCat.{u} :=
   TopCat.topCat_hasLimitsOfSize.{u, u}
 #align Top.Top_has_limits TopCat.topCat_hasLimits
 
-instance forgetPreservesLimitsOfSize :
-    PreservesLimitsOfSize.{v, v} forget where
+instance forgetPreservesLimitsOfSize : PreservesLimitsOfSize.{v, v} forget where
   preservesLimitsOfShape {_} :=
     { preservesLimit := fun {F} =>
         preservesLimitOfPreservesLimitCone (limitConeIsLimit.{v,v} F)
@@ -183,7 +176,7 @@ def colimitCoconeIsColimit (F : J ⥤ TopCatMax.{v, u}) : IsColimit (colimitCoco
     -- Porting note: it appears notation for forget breaks dot notation (also above)
     -- Porting note: previously function was inferred
       ⟨Quot.lift (fun p => (Functor.mapCocone forget s).ι.app p.fst p.snd) ?_, ?_⟩) fun s => ?_
-  · intro _ _ ⟨_,h⟩
+  · intro _ _ ⟨_, h⟩
     dsimp
     rw [h, Functor.comp_map, ← comp_apply, s.ι.naturality]
     dsimp
@@ -221,25 +214,25 @@ instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Ty
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
 
 /-- The terminal object of `Top` is `PUnit`. -/
-def isTerminalPunit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
+def isTerminalPUnit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
   haveI : ∀ X, Unique (X ⟶ TopCat.of PUnit.{u + 1}) := fun X =>
     ⟨⟨⟨fun _ => PUnit.unit, by continuity⟩⟩, fun f => by ext; aesop⟩
   Limits.IsTerminal.ofUnique _
-#align Top.is_terminal_punit TopCat.isTerminalPunit
+#align Top.is_terminal_punit TopCat.isTerminalPUnit
 
 /-- The terminal object of `Top` is `PUnit`. -/
-def terminalIsoPunit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
-  terminalIsTerminal.uniqueUpToIso isTerminalPunit
-#align Top.terminal_iso_punit TopCat.terminalIsoPunit
+def terminalIsoPUnit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
+  terminalIsTerminal.uniqueUpToIso isTerminalPUnit
+#align Top.terminal_iso_punit TopCat.terminalIsoPUnit
 
 /-- The initial object of `Top` is `PEmpty`. -/
-def isInitialPempty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
+def isInitialPEmpty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
   haveI : ∀ X, Unique (TopCat.of PEmpty.{u + 1} ⟶ X) := fun X =>
     ⟨⟨⟨fun x => x.elim, by continuity⟩⟩, fun f => by ext ⟨⟩⟩
   Limits.IsInitial.ofUnique _
-#align Top.is_initial_pempty TopCat.isInitialPempty
+#align Top.is_initial_pempty TopCat.isInitialPEmpty
 
 /-- The initial object of `Top` is `PEmpty`. -/
-def initialIsoPempty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
-  initialIsInitial.uniqueUpToIso isInitialPempty
-#align Top.initial_iso_pempty TopCat.initialIsoPempty
+def initialIsoPEmpty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
+  initialIsInitial.uniqueUpToIso isInitialPEmpty
+#align Top.initial_iso_pempty TopCat.initialIsoPEmpty
chore: forward-port backports (#3752)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
 
 ! This file was ported from Lean 3 source module topology.category.Top.limits.basic
-! leanprover-community/mathlib commit 8195826f5c428fc283510bc67303dd4472d78498
+! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -219,3 +219,27 @@ instance forgetPreservesColimitsOfSize :
 instance forgetPreservesColimits : PreservesColimits (forget : TopCat.{u} ⥤ Type u) :=
   TopCat.forgetPreservesColimitsOfSize.{u, u}
 #align Top.forget_preserves_colimits TopCat.forgetPreservesColimits
+
+/-- The terminal object of `Top` is `PUnit`. -/
+def isTerminalPunit : IsTerminal (TopCat.of PUnit.{u + 1}) :=
+  haveI : ∀ X, Unique (X ⟶ TopCat.of PUnit.{u + 1}) := fun X =>
+    ⟨⟨⟨fun _ => PUnit.unit, by continuity⟩⟩, fun f => by ext; aesop⟩
+  Limits.IsTerminal.ofUnique _
+#align Top.is_terminal_punit TopCat.isTerminalPunit
+
+/-- The terminal object of `Top` is `PUnit`. -/
+def terminalIsoPunit : ⊤_ TopCat.{u} ≅ TopCat.of PUnit :=
+  terminalIsTerminal.uniqueUpToIso isTerminalPunit
+#align Top.terminal_iso_punit TopCat.terminalIsoPunit
+
+/-- The initial object of `Top` is `PEmpty`. -/
+def isInitialPempty : IsInitial (TopCat.of PEmpty.{u + 1}) :=
+  haveI : ∀ X, Unique (TopCat.of PEmpty.{u + 1} ⟶ X) := fun X =>
+    ⟨⟨⟨fun x => x.elim, by continuity⟩⟩, fun f => by ext ⟨⟩⟩
+  Limits.IsInitial.ofUnique _
+#align Top.is_initial_pempty TopCat.isInitialPempty
+
+/-- The initial object of `Top` is `PEmpty`. -/
+def initialIsoPempty : ⊥_ TopCat.{u} ≅ TopCat.of PEmpty :=
+  initialIsInitial.uniqueUpToIso isInitialPempty
+#align Top.initial_iso_pempty TopCat.initialIsoPempty
feat: port Topology.Category.Top.Limits.Basic (#3487)

Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: adamtopaz <github@adamtopaz.com>

Dependencies 8 + 396

397 files ported (98.0%)
163445 lines ported (97.0%)
Show graph

The unported dependencies are