category_theory.category.Cat
⟷
Mathlib.CategoryTheory.Category.Cat
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -160,11 +160,11 @@ def typeToCat : Type u ⥤ Cat where
#align category_theory.Type_to_Cat CategoryTheory.typeToCat
-/
-instance : Faithful typeToCat.{u}
+instance : CategoryTheory.Functor.Faithful typeToCat.{u}
where map_injective' X Y f g h :=
funext fun x => congr_arg Discrete.as (Functor.congr_obj h ⟨x⟩)
-instance : Full typeToCat.{u}
+instance : CategoryTheory.Functor.Full typeToCat.{u}
where
preimage X Y F := Discrete.as ∘ F.obj ∘ Discrete.mk
witness' := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-/
-import Mathbin.CategoryTheory.ConcreteCategory.Bundled
-import Mathbin.CategoryTheory.DiscreteCategory
-import Mathbin.CategoryTheory.Types
-import Mathbin.CategoryTheory.Bicategory.Strict
+import CategoryTheory.ConcreteCategory.Bundled
+import CategoryTheory.DiscreteCategory
+import CategoryTheory.Types
+import CategoryTheory.Bicategory.Strict
#align_import category_theory.category.Cat from "leanprover-community/mathlib"@"3dadefa3f544b1db6214777fe47910739b54c66a"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module category_theory.category.Cat
-! leanprover-community/mathlib commit 3dadefa3f544b1db6214777fe47910739b54c66a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.ConcreteCategory.Bundled
import Mathbin.CategoryTheory.DiscreteCategory
import Mathbin.CategoryTheory.Types
import Mathbin.CategoryTheory.Bicategory.Strict
+#align_import category_theory.category.Cat from "leanprover-community/mathlib"@"3dadefa3f544b1db6214777fe47910739b54c66a"
+
/-!
# Category of categories
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -99,21 +99,27 @@ instance category : LargeCategory.{max v u} Cat.{v, u} :=
#align category_theory.Cat.category CategoryTheory.Cat.category
-/
+#print CategoryTheory.Cat.id_map /-
@[simp]
theorem id_map {C : Cat} {X Y : C} (f : X ⟶ Y) : (𝟙 C : C ⥤ C).map f = f :=
Functor.id_map f
#align category_theory.Cat.id_map CategoryTheory.Cat.id_map
+-/
+#print CategoryTheory.Cat.comp_obj /-
@[simp]
theorem comp_obj {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) (X : C) : (F ≫ G).obj X = G.obj (F.obj X) :=
Functor.comp_obj F G X
#align category_theory.Cat.comp_obj CategoryTheory.Cat.comp_obj
+-/
+#print CategoryTheory.Cat.comp_map /-
@[simp]
theorem comp_map {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) {X Y : C} (f : X ⟶ Y) :
(F ≫ G).map f = G.map (F.map f) :=
Functor.comp_map F G f
#align category_theory.Cat.comp_map CategoryTheory.Cat.comp_map
+-/
#print CategoryTheory.Cat.objects /-
/-- Functor that gets the set of objects of a category. It is not
@@ -128,6 +134,7 @@ section
attribute [local simp] eq_to_hom_map
+#print CategoryTheory.Cat.equivOfIso /-
/-- Any isomorphism in `Cat` induces an equivalence of the underlying categories. -/
def equivOfIso {C D : Cat} (γ : C ≅ D) : C ≌ D
where
@@ -136,6 +143,7 @@ def equivOfIso {C D : Cat} (γ : C ≅ D) : C ≌ D
unitIso := eqToIso <| Eq.symm γ.hom_inv_id
counitIso := eqToIso γ.inv_hom_id
#align category_theory.Cat.equiv_of_iso CategoryTheory.Cat.equivOfIso
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -99,31 +99,16 @@ instance category : LargeCategory.{max v u} Cat.{v, u} :=
#align category_theory.Cat.category CategoryTheory.Cat.category
-/
-/- warning: category_theory.Cat.id_map -> CategoryTheory.Cat.id_map is a dubious translation:
-lean 3 declaration is
- forall {C : CategoryTheory.Cat.{u1, u2}} {X : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} {Y : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} (f : Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C))) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C) X Y f) f
-but is expected to have type
- forall {C : CategoryTheory.Cat.{u2, u1}} {X : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} {Y : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} (f : Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C)) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C)) Y)) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C)) X Y f) f
-Case conversion may be inaccurate. Consider using '#align category_theory.Cat.id_map CategoryTheory.Cat.id_mapₓ'. -/
@[simp]
theorem id_map {C : Cat} {X Y : C} (f : X ⟶ Y) : (𝟙 C : C ⥤ C).map f = f :=
Functor.id_map f
#align category_theory.Cat.id_map CategoryTheory.Cat.id_map
-/- warning: category_theory.Cat.comp_obj -> CategoryTheory.Cat.comp_obj is a dubious translation:
-lean 3 declaration is
- forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}} {E : CategoryTheory.Cat.{u1, u2}} (F : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) C D) (G : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) D E) (X : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C), Eq.{succ u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) G (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F X))
-but is expected to have type
- forall {C : CategoryTheory.Cat.{u2, u1}} {D : CategoryTheory.Cat.{u2, u1}} {E : CategoryTheory.Cat.{u2, u1}} (F : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) C D) (G : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) D E) (X : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C), Eq.{succ u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) G) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.Cat.comp_obj CategoryTheory.Cat.comp_objₓ'. -/
@[simp]
theorem comp_obj {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) (X : C) : (F ≫ G).obj X = G.obj (F.obj X) :=
Functor.comp_obj F G X
#align category_theory.Cat.comp_obj CategoryTheory.Cat.comp_obj
-/- warning: category_theory.Cat.comp_map -> CategoryTheory.Cat.comp_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Cat.comp_map CategoryTheory.Cat.comp_mapₓ'. -/
@[simp]
theorem comp_map {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) {X Y : C} (f : X ⟶ Y) :
(F ≫ G).map f = G.map (F.map f) :=
@@ -143,12 +128,6 @@ section
attribute [local simp] eq_to_hom_map
-/- warning: category_theory.Cat.equiv_of_iso -> CategoryTheory.Cat.equivOfIso is a dubious translation:
-lean 3 declaration is
- forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}}, (CategoryTheory.Iso.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.category.{u1, u2} C D) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D))
-but is expected to have type
- forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}}, (CategoryTheory.Iso.{max u2 u1, max (succ u2) (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.category.{u1, u2} C D) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} (CategoryTheory.Bundled.α.{u2, max u2 (succ u1)} CategoryTheory.Category.{u1, u2} C) (CategoryTheory.Bundled.α.{u2, max u2 (succ u1)} CategoryTheory.Category.{u1, u2} D) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.Cat.str.{u1, u2} D))
-Case conversion may be inaccurate. Consider using '#align category_theory.Cat.equiv_of_iso CategoryTheory.Cat.equivOfIsoₓ'. -/
/-- Any isomorphism in `Cat` induces an equivalence of the underlying categories. -/
def equivOfIso {C D : Cat} (γ : C ≅ D) : C ≌ D
where
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -186,12 +186,8 @@ instance : Full typeToCat.{u}
witness' := by
intro X Y F
apply Functor.ext
- · intro x y f
- dsimp
- ext
- · rintro ⟨x⟩
- ext
- rfl
+ · intro x y f; dsimp; ext
+ · rintro ⟨x⟩; ext; rfl
end CategoryTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -122,10 +122,7 @@ theorem comp_obj {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) (X : C) : (F ≫ G).o
#align category_theory.Cat.comp_obj CategoryTheory.Cat.comp_obj
/- warning: category_theory.Cat.comp_map -> CategoryTheory.Cat.comp_map is a dubious translation:
-lean 3 declaration is
- forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}} {E : CategoryTheory.Cat.{u1, u2}} (F : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) C D) (G : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) D E) {X : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} {Y : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} (f : Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C))) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) X Y f) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) G (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F X Y f))
-but is expected to have type
- forall {C : CategoryTheory.Cat.{u2, u1}} {D : CategoryTheory.Cat.{u2, u1}} {E : CategoryTheory.Cat.{u2, u1}} (F : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) C D) (G : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) D E) {X : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} {Y : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} (f : Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) Y)) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) X Y f) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) G) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) Y) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) X Y f))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Cat.comp_map CategoryTheory.Cat.comp_mapₓ'. -/
@[simp]
theorem comp_map {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) {X Y : C} (f : X ⟶ Y) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/62e8311c791f02c47451bf14aa2501048e7c2f33
@@ -77,8 +77,8 @@ instance bicategory : Bicategory.{max v u, max v u} Cat.{v, u}
associator A B C D := Functor.associator
leftUnitor A B := Functor.leftUnitor
rightUnitor A B := Functor.rightUnitor
- pentagon' A B C D E := Functor.pentagon
- triangle' A B C := Functor.triangle
+ pentagon A B C D E := Functor.pentagon
+ triangle A B C := Functor.triangle
#align category_theory.Cat.bicategory CategoryTheory.Cat.bicategory
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/22131150f88a2d125713ffa0f4693e3355b1eb49
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
! This file was ported from Lean 3 source module category_theory.category.Cat
-! leanprover-community/mathlib commit a836c6dba9bd1ee2a0cdc9af0006a596f243031c
+! leanprover-community/mathlib commit 3dadefa3f544b1db6214777fe47910739b54c66a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.CategoryTheory.Bicategory.Strict
/-!
# Category of categories
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file contains the definition of the category `Cat` of all categories.
In this category objects are categories and
morphisms are functors between these categories.
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -31,12 +31,14 @@ universe v u
namespace CategoryTheory
+#print CategoryTheory.Cat /-
-- intended to be used with explicit universe parameters
/-- Category of categories. -/
@[nolint check_univs]
def Cat :=
Bundled Category.{v, u}
#align category_theory.Cat CategoryTheory.Cat
+-/
namespace Cat
@@ -46,15 +48,20 @@ instance : Inhabited Cat :=
instance : CoeSort Cat (Type u) :=
⟨Bundled.α⟩
+#print CategoryTheory.Cat.str /-
instance str (C : Cat.{v, u}) : Category.{v, u} C :=
C.str
#align category_theory.Cat.str CategoryTheory.Cat.str
+-/
+#print CategoryTheory.Cat.of /-
/-- Construct a bundled `Cat` from the underlying type and the typeclass. -/
def of (C : Type u) [Category.{v} C] : Cat.{v, u} :=
Bundled.of C
#align category_theory.Cat.of CategoryTheory.Cat.of
+-/
+#print CategoryTheory.Cat.bicategory /-
/-- Bicategory structure on `Cat` -/
instance bicategory : Bicategory.{max v u, max v u} Cat.{v, u}
where
@@ -70,7 +77,9 @@ instance bicategory : Bicategory.{max v u, max v u} Cat.{v, u}
pentagon' A B C D E := Functor.pentagon
triangle' A B C := Functor.triangle
#align category_theory.Cat.bicategory CategoryTheory.Cat.bicategory
+-/
+#print CategoryTheory.Cat.bicategory.strict /-
/-- `Cat` is a strict bicategory. -/
instance bicategory.strict : Bicategory.Strict Cat.{v, u}
where
@@ -78,39 +87,68 @@ instance bicategory.strict : Bicategory.Strict Cat.{v, u}
comp_id' C D F := by cases F <;> rfl
assoc' := by intros <;> rfl
#align category_theory.Cat.bicategory.strict CategoryTheory.Cat.bicategory.strict
+-/
+#print CategoryTheory.Cat.category /-
/-- Category structure on `Cat` -/
instance category : LargeCategory.{max v u} Cat.{v, u} :=
StrictBicategory.category Cat.{v, u}
#align category_theory.Cat.category CategoryTheory.Cat.category
+-/
+/- warning: category_theory.Cat.id_map -> CategoryTheory.Cat.id_map is a dubious translation:
+lean 3 declaration is
+ forall {C : CategoryTheory.Cat.{u1, u2}} {X : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} {Y : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} (f : Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C))) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C) X Y f) f
+but is expected to have type
+ forall {C : CategoryTheory.Cat.{u2, u1}} {X : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} {Y : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} (f : Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C)) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C)) Y)) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.CategoryStruct.id.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C)) X Y f) f
+Case conversion may be inaccurate. Consider using '#align category_theory.Cat.id_map CategoryTheory.Cat.id_mapₓ'. -/
@[simp]
theorem id_map {C : Cat} {X Y : C} (f : X ⟶ Y) : (𝟙 C : C ⥤ C).map f = f :=
Functor.id_map f
#align category_theory.Cat.id_map CategoryTheory.Cat.id_map
+/- warning: category_theory.Cat.comp_obj -> CategoryTheory.Cat.comp_obj is a dubious translation:
+lean 3 declaration is
+ forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}} {E : CategoryTheory.Cat.{u1, u2}} (F : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) C D) (G : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) D E) (X : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C), Eq.{succ u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) G (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F X))
+but is expected to have type
+ forall {C : CategoryTheory.Cat.{u2, u1}} {D : CategoryTheory.Cat.{u2, u1}} {E : CategoryTheory.Cat.{u2, u1}} (F : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) C D) (G : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) D E) (X : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C), Eq.{succ u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) G) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.Cat.comp_obj CategoryTheory.Cat.comp_objₓ'. -/
@[simp]
theorem comp_obj {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) (X : C) : (F ≫ G).obj X = G.obj (F.obj X) :=
Functor.comp_obj F G X
#align category_theory.Cat.comp_obj CategoryTheory.Cat.comp_obj
+/- warning: category_theory.Cat.comp_map -> CategoryTheory.Cat.comp_map is a dubious translation:
+lean 3 declaration is
+ forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}} {E : CategoryTheory.Cat.{u1, u2}} (F : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) C D) (G : Quiver.Hom.{succ (max u1 u2), max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2})) D E) {X : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} {Y : coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C} (f : Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C))) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.bicategory.{u1, u2}) C D E F G) X Y f) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} E) (CategoryTheory.Cat.str.{u1, u2} E) G (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D) F X Y f))
+but is expected to have type
+ forall {C : CategoryTheory.Cat.{u2, u1}} {D : CategoryTheory.Cat.{u2, u1}} {E : CategoryTheory.Cat.{u2, u1}} (F : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) C D) (G : Quiver.Hom.{max (succ u1) (succ u2), max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1})) D E) {X : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} {Y : CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C} (f : Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) Y)) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} (CategoryTheory.Bicategory.toCategoryStruct.{max u1 u2, max u1 u2, max (succ u1) (succ u2)} CategoryTheory.Cat.{u2, u1} CategoryTheory.Cat.bicategory.{u2, u1}) C D E F G)) X Y f) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} E) (CategoryTheory.Cat.str.{u2, u1} E) G) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) X) (Prefunctor.obj.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) Y) (Prefunctor.map.{succ u2, succ u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C))) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Category.toCategoryStruct.{u2, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} C) (CategoryTheory.Cat.str.{u2, u1} C) (CategoryTheory.Bundled.α.{u1, max u1 (succ u2)} CategoryTheory.Category.{u2, u1} D) (CategoryTheory.Cat.str.{u2, u1} D) F) X Y f))
+Case conversion may be inaccurate. Consider using '#align category_theory.Cat.comp_map CategoryTheory.Cat.comp_mapₓ'. -/
@[simp]
theorem comp_map {C D E : Cat} (F : C ⟶ D) (G : D ⟶ E) {X Y : C} (f : X ⟶ Y) :
(F ≫ G).map f = G.map (F.map f) :=
Functor.comp_map F G f
#align category_theory.Cat.comp_map CategoryTheory.Cat.comp_map
+#print CategoryTheory.Cat.objects /-
/-- Functor that gets the set of objects of a category. It is not
called `forget`, because it is not a faithful functor. -/
def objects : Cat.{v, u} ⥤ Type u where
obj C := C
map C D F := F.obj
#align category_theory.Cat.objects CategoryTheory.Cat.objects
+-/
section
attribute [local simp] eq_to_hom_map
+/- warning: category_theory.Cat.equiv_of_iso -> CategoryTheory.Cat.equivOfIso is a dubious translation:
+lean 3 declaration is
+ forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}}, (CategoryTheory.Iso.{max u1 u2, max (succ u2) u2 (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.category.{u1, u2} C D) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} C) (CategoryTheory.Cat.str.{u1, u2} C) (coeSort.{succ (max (succ u2) u2 (succ u1)), succ (succ u2)} CategoryTheory.Cat.{u1, u2} Type.{u2} CategoryTheory.Cat.hasCoeToSort.{u2, u1} D) (CategoryTheory.Cat.str.{u1, u2} D))
+but is expected to have type
+ forall {C : CategoryTheory.Cat.{u1, u2}} {D : CategoryTheory.Cat.{u1, u2}}, (CategoryTheory.Iso.{max u2 u1, max (succ u2) (succ u1)} CategoryTheory.Cat.{u1, u2} CategoryTheory.Cat.category.{u1, u2} C D) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} (CategoryTheory.Bundled.α.{u2, max u2 (succ u1)} CategoryTheory.Category.{u1, u2} C) (CategoryTheory.Bundled.α.{u2, max u2 (succ u1)} CategoryTheory.Category.{u1, u2} D) (CategoryTheory.Cat.str.{u1, u2} C) (CategoryTheory.Cat.str.{u1, u2} D))
+Case conversion may be inaccurate. Consider using '#align category_theory.Cat.equiv_of_iso CategoryTheory.Cat.equivOfIsoₓ'. -/
/-- Any isomorphism in `Cat` induces an equivalence of the underlying categories. -/
def equivOfIso {C D : Cat} (γ : C ≅ D) : C ≌ D
where
@@ -124,6 +162,7 @@ end
end Cat
+#print CategoryTheory.typeToCat /-
/-- Embedding `Type` into `Cat` as discrete categories.
This ought to be modelled as a 2-functor!
@@ -135,6 +174,7 @@ def typeToCat : Type u ⥤ Cat where
map_id' X := by apply Functor.ext; tidy
map_comp' X Y Z f g := by apply Functor.ext; tidy
#align category_theory.Type_to_Cat CategoryTheory.typeToCat
+-/
instance : Faithful typeToCat.{u}
where map_injective' X Y f g h :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Functor.Full
a Prop (#12449)
Before this PR, Functor.Full
contained the data of the preimage of maps by a full functor F
. This PR makes Functor.Full
a proposition. This is to prevent any diamond to appear.
The lemma Functor.image_preimage
is also renamed Functor.map_preimage
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -162,9 +162,7 @@ instance : Functor.Faithful typeToCat.{u} where
funext fun x => congr_arg Discrete.as (Functor.congr_obj h ⟨x⟩)
instance : Functor.Full typeToCat.{u} where
- preimage F := Discrete.as ∘ F.obj ∘ Discrete.mk
- witness := by
- intro X Y F
+ map_surjective F := ⟨Discrete.as ∘ F.obj ∘ Discrete.mk, by
apply Functor.ext
· intro x y f
dsimp
@@ -172,6 +170,6 @@ instance : Functor.Full typeToCat.{u} where
aesop_cat
· rintro ⟨x⟩
apply Discrete.ext
- rfl
+ rfl⟩
end CategoryTheory
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -157,11 +157,11 @@ def typeToCat : Type u ⥤ Cat where
set_option linter.uppercaseLean3 false in
#align category_theory.Type_to_Cat CategoryTheory.typeToCat
-instance : Faithful typeToCat.{u} where
+instance : Functor.Faithful typeToCat.{u} where
map_injective {_X} {_Y} _f _g h :=
funext fun x => congr_arg Discrete.as (Functor.congr_obj h ⟨x⟩)
-instance : Full typeToCat.{u} where
+instance : Functor.Full typeToCat.{u} where
preimage F := Discrete.as ∘ F.obj ∘ Discrete.mk
witness := by
intro X Y F
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -41,7 +41,7 @@ namespace Cat
instance : Inhabited Cat :=
⟨⟨Type u, CategoryTheory.types⟩⟩
---Porting note: maybe this coercion should be defined to be `objects.obj`?
+-- Porting note: maybe this coercion should be defined to be `objects.obj`?
instance : CoeSort Cat (Type u) :=
⟨Bundled.α⟩
@@ -114,7 +114,7 @@ def objects : Cat.{v, u} ⥤ Type u where
set_option linter.uppercaseLean3 false in
#align category_theory.Cat.objects CategoryTheory.Cat.objects
--- porting note: this instance was needed for CategoryTheory.Category.Cat.Limit
+-- Porting note: this instance was needed for CategoryTheory.Category.Cat.Limit
instance (X : Cat.{v, u}) : Category (objects.obj X) := (inferInstance : Category X)
section
@@ -2,17 +2,14 @@
Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module category_theory.category.Cat
-! leanprover-community/mathlib commit e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.ConcreteCategory.Bundled
import Mathlib.CategoryTheory.DiscreteCategory
import Mathlib.CategoryTheory.Types
import Mathlib.CategoryTheory.Bicategory.Strict
+#align_import category_theory.category.Cat from "leanprover-community/mathlib"@"e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b"
+
/-!
# Category of categories
@@ -164,8 +164,7 @@ instance : Faithful typeToCat.{u} where
map_injective {_X} {_Y} _f _g h :=
funext fun x => congr_arg Discrete.as (Functor.congr_obj h ⟨x⟩)
-instance : Full typeToCat.{u}
- where
+instance : Full typeToCat.{u} where
preimage F := Discrete.as ∘ F.obj ∘ Discrete.mk
witness := by
intro X Y F
@@ -44,6 +44,7 @@ namespace Cat
instance : Inhabited Cat :=
⟨⟨Type u, CategoryTheory.types⟩⟩
+--Porting note: maybe this coercion should be defined to be `objects.obj`?
instance : CoeSort Cat (Type u) :=
⟨Bundled.α⟩
@@ -116,6 +117,9 @@ def objects : Cat.{v, u} ⥤ Type u where
set_option linter.uppercaseLean3 false in
#align category_theory.Cat.objects CategoryTheory.Cat.objects
+-- porting note: this instance was needed for CategoryTheory.Category.Cat.Limit
+instance (X : Cat.{v, u}) : Category (objects.obj X) := (inferInstance : Category X)
+
section
attribute [local simp] eqToHom_map
vscode is already configured by .vscode/settings.json
to trim these on save. It's not clear how they've managed to stick around.
By doing this all in one PR now, it avoids getting random whitespace diffs in PRs later.
This was done with a regex search in vscode,
@@ -141,22 +141,22 @@ This ought to be modelled as a 2-functor!
@[simps]
def typeToCat : Type u ⥤ Cat where
obj X := Cat.of (Discrete X)
- map := fun {X} {Y} f => by
- dsimp
+ map := fun {X} {Y} f => by
+ dsimp
exact Discrete.functor (Discrete.mk ∘ f)
- map_id X := by
+ map_id X := by
apply Functor.ext
· intro X Y f
cases f
simp only [id_eq, eqToHom_refl, Cat.id_map, Category.comp_id, Category.id_comp]
apply ULift.ext
aesop_cat
- · aesop_cat
+ · aesop_cat
map_comp f g := by apply Functor.ext; aesop_cat
set_option linter.uppercaseLean3 false in
#align category_theory.Type_to_Cat CategoryTheory.typeToCat
-instance : Faithful typeToCat.{u} where
+instance : Faithful typeToCat.{u} where
map_injective {_X} {_Y} _f _g h :=
funext fun x => congr_arg Discrete.as (Functor.congr_obj h ⟨x⟩)
@@ -168,11 +168,10 @@ instance : Full typeToCat.{u}
apply Functor.ext
· intro x y f
dsimp
- apply ULift.ext
+ apply ULift.ext
aesop_cat
· rintro ⟨x⟩
apply Discrete.ext
rfl
end CategoryTheory
-
All dependencies are ported!