category_theory.products.bifunctorMathlib.CategoryTheory.Products.Bifunctor

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Stephen Morgan, Scott Morrison
 -/
-import Mathbin.CategoryTheory.Products.Basic
+import CategoryTheory.Products.Basic
 
 #align_import category_theory.products.bifunctor from "leanprover-community/mathlib"@"1ead22342e1a078bd44744ace999f85756555d35"
 
Diff
@@ -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.
 
Diff
@@ -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
 
Diff
@@ -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')) =
Diff
@@ -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') :

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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]
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,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.
 -/
feat: port CategoryTheory.Products.Bifunctor (#2239)

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>

Dependencies 15

16 files ported (100.0%)
4022 lines ported (100.0%)

All dependencies are ported!