category_theory.products.bifunctor
⟷
Mathlib.CategoryTheory.Products.Bifunctor
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Stephen Morgan, Scott Morrison
-/
-import Mathbin.CategoryTheory.Products.Basic
+import CategoryTheory.Products.Basic
#align_import category_theory.products.bifunctor from "leanprover-community/mathlib"@"1ead22342e1a078bd44744ace999f85756555d35"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2017 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Stephen Morgan, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.products.bifunctor
-! leanprover-community/mathlib commit 1ead22342e1a078bd44744ace999f85756555d35
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Products.Basic
+#align_import category_theory.products.bifunctor from "leanprover-community/mathlib"@"1ead22342e1a078bd44744ace999f85756555d35"
+
/-!
# Lemmas about functors out of product categories.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -28,39 +28,49 @@ variable {C : Type u₁} {D : Type u₂} {E : Type u₃}
variable [Category.{v₁} C] [Category.{v₂} D] [Category.{v₃} E]
+#print CategoryTheory.Bifunctor.map_id /-
@[simp]
theorem map_id (F : C × D ⥤ E) (X : C) (Y : D) :
F.map ((𝟙 X, 𝟙 Y) : (X, Y) ⟶ (X, Y)) = 𝟙 (F.obj (X, Y)) :=
F.map_id (X, Y)
#align category_theory.bifunctor.map_id CategoryTheory.Bifunctor.map_id
+-/
+#print CategoryTheory.Bifunctor.map_id_comp /-
@[simp]
theorem map_id_comp (F : C × D ⥤ E) (W : C) {X Y Z : D} (f : X ⟶ Y) (g : Y ⟶ Z) :
F.map ((𝟙 W, f ≫ g) : (W, X) ⟶ (W, Z)) =
F.map ((𝟙 W, f) : (W, X) ⟶ (W, Y)) ≫ F.map ((𝟙 W, g) : (W, Y) ⟶ (W, Z)) :=
by rw [← functor.map_comp, prod_comp, category.comp_id]
#align category_theory.bifunctor.map_id_comp CategoryTheory.Bifunctor.map_id_comp
+-/
+#print CategoryTheory.Bifunctor.map_comp_id /-
@[simp]
theorem map_comp_id (F : C × D ⥤ E) (X Y Z : C) (W : D) (f : X ⟶ Y) (g : Y ⟶ Z) :
F.map ((f ≫ g, 𝟙 W) : (X, W) ⟶ (Z, W)) =
F.map ((f, 𝟙 W) : (X, W) ⟶ (Y, W)) ≫ F.map ((g, 𝟙 W) : (Y, W) ⟶ (Z, W)) :=
by rw [← functor.map_comp, prod_comp, category.comp_id]
#align category_theory.bifunctor.map_comp_id CategoryTheory.Bifunctor.map_comp_id
+-/
+#print CategoryTheory.Bifunctor.diagonal /-
@[simp]
theorem diagonal (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y ⟶ Y') :
F.map ((𝟙 X, g) : (X, Y) ⟶ (X, Y')) ≫ F.map ((f, 𝟙 Y') : (X, Y') ⟶ (X', Y')) =
F.map ((f, g) : (X, Y) ⟶ (X', Y')) :=
by rw [← functor.map_comp, prod_comp, category.id_comp, category.comp_id]
#align category_theory.bifunctor.diagonal CategoryTheory.Bifunctor.diagonal
+-/
+#print CategoryTheory.Bifunctor.diagonal' /-
@[simp]
theorem diagonal' (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y ⟶ Y') :
F.map ((f, 𝟙 Y) : (X, Y) ⟶ (X', Y)) ≫ F.map ((𝟙 X', g) : (X', Y) ⟶ (X', Y')) =
F.map ((f, g) : (X, Y) ⟶ (X', Y')) :=
by rw [← functor.map_comp, prod_comp, category.id_comp, category.comp_id]
#align category_theory.bifunctor.diagonal' CategoryTheory.Bifunctor.diagonal'
+-/
end CategoryTheory.Bifunctor
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -28,21 +28,12 @@ variable {C : Type u₁} {D : Type u₂} {E : Type u₃}
variable [Category.{v₁} C] [Category.{v₂} D] [Category.{v₃} E]
-/- warning: category_theory.bifunctor.map_id -> CategoryTheory.Bifunctor.map_id is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (Y : D), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) X) (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) Y))) (CategoryTheory.CategoryStruct.id.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y)))
-but is expected to have type
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u5 u4, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (Y : D), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) X) (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) Y))) (CategoryTheory.CategoryStruct.id.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y)))
-Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.map_id CategoryTheory.Bifunctor.map_idₓ'. -/
@[simp]
theorem map_id (F : C × D ⥤ E) (X : C) (Y : D) :
F.map ((𝟙 X, 𝟙 Y) : (X, Y) ⟶ (X, Y)) = 𝟙 (F.obj (X, Y)) :=
F.map_id (X, Y)
#align category_theory.bifunctor.map_id CategoryTheory.Bifunctor.map_id
-/- warning: category_theory.bifunctor.map_id_comp -> CategoryTheory.Bifunctor.map_id_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.map_id_comp CategoryTheory.Bifunctor.map_id_compₓ'. -/
@[simp]
theorem map_id_comp (F : C × D ⥤ E) (W : C) {X Y Z : D} (f : X ⟶ Y) (g : Y ⟶ Z) :
F.map ((𝟙 W, f ≫ g) : (W, X) ⟶ (W, Z)) =
@@ -50,9 +41,6 @@ theorem map_id_comp (F : C × D ⥤ E) (W : C) {X Y Z : D} (f : X ⟶ Y) (g : Y
by rw [← functor.map_comp, prod_comp, category.comp_id]
#align category_theory.bifunctor.map_id_comp CategoryTheory.Bifunctor.map_id_comp
-/- warning: category_theory.bifunctor.map_comp_id -> CategoryTheory.Bifunctor.map_comp_id is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.map_comp_id CategoryTheory.Bifunctor.map_comp_idₓ'. -/
@[simp]
theorem map_comp_id (F : C × D ⥤ E) (X Y Z : C) (W : D) (f : X ⟶ Y) (g : Y ⟶ Z) :
F.map ((f ≫ g, 𝟙 W) : (X, W) ⟶ (Z, W)) =
@@ -60,9 +48,6 @@ theorem map_comp_id (F : C × D ⥤ E) (X Y Z : C) (W : D) (f : X ⟶ Y) (g : Y
by rw [← functor.map_comp, prod_comp, category.comp_id]
#align category_theory.bifunctor.map_comp_id CategoryTheory.Bifunctor.map_comp_id
-/- warning: category_theory.bifunctor.diagonal -> CategoryTheory.Bifunctor.diagonal is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.diagonal CategoryTheory.Bifunctor.diagonalₓ'. -/
@[simp]
theorem diagonal (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y ⟶ Y') :
F.map ((𝟙 X, g) : (X, Y) ⟶ (X, Y')) ≫ F.map ((f, 𝟙 Y') : (X, Y') ⟶ (X', Y')) =
@@ -70,9 +55,6 @@ theorem diagonal (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y
by rw [← functor.map_comp, prod_comp, category.id_comp, category.comp_id]
#align category_theory.bifunctor.diagonal CategoryTheory.Bifunctor.diagonal
-/- warning: category_theory.bifunctor.diagonal' -> CategoryTheory.Bifunctor.diagonal' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.diagonal' CategoryTheory.Bifunctor.diagonal'ₓ'. -/
@[simp]
theorem diagonal' (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y ⟶ Y') :
F.map ((f, 𝟙 Y) : (X, Y) ⟶ (X', Y)) ≫ F.map ((𝟙 X', g) : (X', Y) ⟶ (X', Y')) =
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -41,10 +41,7 @@ theorem map_id (F : C × D ⥤ E) (X : C) (Y : D) :
#align category_theory.bifunctor.map_id CategoryTheory.Bifunctor.map_id
/- warning: category_theory.bifunctor.map_id_comp -> CategoryTheory.Bifunctor.map_id_comp is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (W : C) {X : D} {Y : D} {Z : D} (f : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) X Y) (g : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) Y Z), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W X)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W Z))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W X) (Prod.mk.{u4, u5} C D W Z) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) W) (CategoryTheory.CategoryStruct.comp.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) Y (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z)) f g))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W X)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W Z)) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W X) (Prod.mk.{u4, u5} C D W Y) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) W) f)) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D W Y) (Prod.mk.{u4, u5} C D W Z) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) W) g)))
-but is expected to have type
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u5 u4, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (W : C) {X : D} {Y : D} {Z : D} (f : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) X Y) (g : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) Y Z), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W X)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W Z))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W X) (Prod.mk.{u4, u5} C D W Z) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) W) (CategoryTheory.CategoryStruct.comp.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) Y (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z)) f g))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W X)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W Z)) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W X) (Prod.mk.{u4, u5} C D W Y) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W X)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) W) f)) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D W Y) (Prod.mk.{u4, u5} C D W Z) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D W Z))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) W) g)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.map_id_comp CategoryTheory.Bifunctor.map_id_compₓ'. -/
@[simp]
theorem map_id_comp (F : C × D ⥤ E) (W : C) {X Y Z : D} (f : X ⟶ Y) (g : Y ⟶ Z) :
@@ -54,10 +51,7 @@ theorem map_id_comp (F : C × D ⥤ E) (W : C) {X Y Z : D} (f : X ⟶ Y) (g : Y
#align category_theory.bifunctor.map_id_comp CategoryTheory.Bifunctor.map_id_comp
/- warning: category_theory.bifunctor.map_comp_id -> CategoryTheory.Bifunctor.map_comp_id is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (Y : C) (Z : C) (W : D) (f : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) X Y) (g : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) Y Z), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X W)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D Z W))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X W) (Prod.mk.{u4, u5} C D Z W) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) (CategoryTheory.CategoryStruct.comp.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) Y (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W)) f g) (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) W))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X W)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D Y W)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D Z W)) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X W) (Prod.mk.{u4, u5} C D Y W) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W))) f (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) W))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D Y W) (Prod.mk.{u4, u5} C D Z W) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) g (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) W))))
-but is expected to have type
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u5 u4, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (Y : C) (Z : C) (W : D) (f : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) X Y) (g : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) Y Z), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X W)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D Z W))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X W) (Prod.mk.{u4, u5} C D Z W) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) (CategoryTheory.CategoryStruct.comp.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) Y (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W)) f g) (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) W))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X W)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D Y W)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D Z W)) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X W) (Prod.mk.{u4, u5} C D Y W) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X W)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W))) f (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) W))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D Y W) (Prod.mk.{u4, u5} C D Z W) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Y W)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D Z W))) g (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) W))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.map_comp_id CategoryTheory.Bifunctor.map_comp_idₓ'. -/
@[simp]
theorem map_comp_id (F : C × D ⥤ E) (X Y Z : C) (W : D) (f : X ⟶ Y) (g : Y ⟶ Z) :
@@ -67,10 +61,7 @@ theorem map_comp_id (F : C × D ⥤ E) (X Y Z : C) (W : D) (f : X ⟶ Y) (g : Y
#align category_theory.bifunctor.map_comp_id CategoryTheory.Bifunctor.map_comp_id
/- warning: category_theory.bifunctor.diagonal -> CategoryTheory.Bifunctor.diagonal is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (X' : C) (f : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) X X') (Y : D) (Y' : D) (g : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) Y Y'), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X' Y'))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y')) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X' Y')) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y'))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) X) g)) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y') (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y')) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y')) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) f (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) Y')))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) f g))
-but is expected to have type
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u5 u4, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (X' : C) (f : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) X X') (Y : D) (Y' : D) (g : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) Y Y'), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X' Y'))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y')) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X' Y')) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y'))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) X) g)) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y') (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y')) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y')) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) f (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) Y')))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.diagonal CategoryTheory.Bifunctor.diagonalₓ'. -/
@[simp]
theorem diagonal (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y ⟶ Y') :
@@ -80,10 +71,7 @@ theorem diagonal (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y
#align category_theory.bifunctor.diagonal CategoryTheory.Bifunctor.diagonal
/- warning: category_theory.bifunctor.diagonal' -> CategoryTheory.Bifunctor.diagonal' is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (X' : C) (f : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) X X') (Y : D) (Y' : D) (g : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) Y Y'), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X' Y'))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X' Y)) (CategoryTheory.Functor.obj.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X' Y')) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X' Y) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y))) f (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) Y))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X' Y) (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) X') g))) (CategoryTheory.Functor.map.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) f g))
-but is expected to have type
- forall {C : Type.{u4}} {D : Type.{u5}} {E : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u5} D] [_inst_3 : CategoryTheory.Category.{u3, u6} E] (F : CategoryTheory.Functor.{max u1 u2, u3, max u5 u4, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3) (X : C) (X' : C) (f : Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) X X') (Y : D) (Y' : D) (g : Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) Y Y'), Eq.{succ u3} (Quiver.Hom.{succ u3, u6} E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X' Y'))) (CategoryTheory.CategoryStruct.comp.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X' Y)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X' Y')) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X' Y) (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y))) f (CategoryTheory.CategoryStruct.id.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2) Y))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X' Y) (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (CategoryTheory.CategoryStruct.id.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1) X') g))) (Prefunctor.map.{max (succ u1) (succ u2), succ u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u4 u5} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2))) E (CategoryTheory.CategoryStruct.toQuiver.{u3, u6} E (CategoryTheory.Category.toCategoryStruct.{u3, u6} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u3, max u4 u5, u6} (Prod.{u4, u5} C D) (CategoryTheory.prod.{u1, u2, u4, u5} C _inst_1 D _inst_2) E _inst_3 F) (Prod.mk.{u4, u5} C D X Y) (Prod.mk.{u4, u5} C D X' Y') (Prod.mk.{u1, u2} (Quiver.Hom.{succ u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u4} C (CategoryTheory.Category.toCategoryStruct.{u1, u4} C _inst_1)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.fst.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) (Quiver.Hom.{succ u2, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u5} D (CategoryTheory.Category.toCategoryStruct.{u2, u5} D _inst_2)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X Y)) (Prod.snd.{u4, u5} C D (Prod.mk.{u4, u5} C D X' Y'))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.bifunctor.diagonal' CategoryTheory.Bifunctor.diagonal'ₓ'. -/
@[simp]
theorem diagonal' (F : C × D ⥤ E) (X X' : C) (f : X ⟶ X') (Y Y' : D) (g : Y ⟶ Y') :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -19,7 +19,6 @@ namespace CategoryTheory.Bifunctor
universe v₁ v₂ v₃ u₁ u₂ u₃
variable {C : Type u₁} {D : Type u₂} {E : Type u₃}
-
variable [Category.{v₁} C] [Category.{v₂} D] [Category.{v₃} E]
@[simp]
@@ -2,14 +2,11 @@
Copyright (c) 2017 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Stephen Morgan, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.products.bifunctor
-! leanprover-community/mathlib commit dc6c365e751e34d100e80fe6e314c3c3e0fd2988
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Products.Basic
+#align_import category_theory.products.bifunctor from "leanprover-community/mathlib"@"dc6c365e751e34d100e80fe6e314c3c3e0fd2988"
+
/-!
# Lemmas about functors out of product categories.
-/
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: casavaca <96765450+casavaca@users.noreply.github.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com> Co-authored-by: Thomas Browning <tb65536@uw.edu> Co-authored-by: Moritz Firsching <firsching@google.com>
All dependencies are ported!