topology.category.Top.limits.basic
⟷
Mathlib.Topology.Category.TopCat.Limits.Basic
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
This file is already being ported at https://github.com/leanprover-community/mathlib4/pull/3487, but:
limits/basic.lean
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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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 =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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:
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/3905fa80e62c0898131285baab35559fbc4e5cda
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/86d04064ca33ee3d3405fbfc497d494fd2dd4796
@@ -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.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -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}) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
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>
@@ -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) :=
@@ -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]
@@ -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"
@@ -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 }
@@ -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
@@ -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
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.
@@ -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
@@ -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
@@ -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
/-!
sSup
/iSup
(#3938)
As discussed on Zulip
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>
@@ -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
@@ -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`.
@@ -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
data.mv_polynomial.basic
, data.mv_polynomial.funext
: leanprover-community/mathlib#18839category_theory.limits.preserves.finite
, category_theory.preadditive.projective
: leanprover-community/mathlib#18890category_theory.abelian.basic
, category_theory.abelian.opposite
: leanprover-community/mathlib#18740topology.category.Top.limits.basic
: leanprover-community/mathlib#18871. Note that this does not show a useful diff on the dashboard pages as file splits aren't tracked well by git.Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -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
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>
The unported dependencies are