category_theory.adjunction.whiskeringMathlib.CategoryTheory.Adjunction.Whiskering

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Adam Topaz
 -/
-import Mathbin.CategoryTheory.Whiskering
-import Mathbin.CategoryTheory.Adjunction.Basic
+import CategoryTheory.Whiskering
+import CategoryTheory.Adjunction.Basic
 
 #align_import category_theory.adjunction.whiskering from "leanprover-community/mathlib"@"3dadefa3f544b1db6214777fe47910739b54c66a"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Adam Topaz. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.adjunction.whiskering
-! leanprover-community/mathlib commit 3dadefa3f544b1db6214777fe47910739b54c66a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Whiskering
 import Mathbin.CategoryTheory.Adjunction.Basic
 
+#align_import category_theory.adjunction.whiskering from "leanprover-community/mathlib"@"3dadefa3f544b1db6214777fe47910739b54c66a"
+
 /-!
 > THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
 > Any changes to this file require a corresponding PR to mathlib4.
Diff
@@ -29,6 +29,7 @@ open CategoryTheory
 
 variable (C : Type _) {D E : Type _} [Category C] [Category D] [Category E] {F : D ⥤ E} {G : E ⥤ D}
 
+#print CategoryTheory.Adjunction.whiskerRight /-
 --  `tidy` works for all the proofs in this definition, but it's fairly slow.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskering_right C _ _).obj F ⊣ (whiskering_right C _ _).obj G`. -/
@@ -47,7 +48,9 @@ protected def whiskerRight (adj : F ⊣ G) :
       left_triangle := by ext; dsimp; simp
       right_triangle := by ext; dsimp; simp }
 #align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRight
+-/
 
+#print CategoryTheory.Adjunction.whiskerLeft /-
 -- `tidy` gets stuck for `left_triangle'` and `right_triangle'`.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskering_left _ _ C).obj G ⊣ (whiskering_left _ _ C).obj F`. -/
@@ -70,6 +73,7 @@ protected def whiskerLeft (adj : F ⊣ G) :
         ext x; dsimp
         simp only [category.id_comp, category.comp_id, ← x.map_comp]; simp }
 #align category_theory.adjunction.whisker_left CategoryTheory.Adjunction.whiskerLeft
+-/
 
 end CategoryTheory.Adjunction
 
Diff
@@ -39,11 +39,11 @@ protected def whiskerRight (adj : F ⊣ G) :
     { Unit :=
         { app := fun X =>
             (Functor.rightUnitor _).inv ≫ whiskerLeft X adj.Unit ≫ (Functor.associator _ _ _).inv
-          naturality' := by intros ; ext; dsimp; simp }
+          naturality' := by intros; ext; dsimp; simp }
       counit :=
         { app := fun X =>
             (Functor.associator _ _ _).Hom ≫ whiskerLeft X adj.counit ≫ (Functor.rightUnitor _).Hom
-          naturality' := by intros ; ext; dsimp; simp }
+          naturality' := by intros; ext; dsimp; simp }
       left_triangle := by ext; dsimp; simp
       right_triangle := by ext; dsimp; simp }
 #align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRight
@@ -58,11 +58,11 @@ protected def whiskerLeft (adj : F ⊣ G) :
     { Unit :=
         { app := fun X =>
             (Functor.leftUnitor _).inv ≫ whiskerRight adj.Unit X ≫ (Functor.associator _ _ _).Hom
-          naturality' := by intros ; ext; dsimp; simp }
+          naturality' := by intros; ext; dsimp; simp }
       counit :=
         { app := fun X =>
             (Functor.associator _ _ _).inv ≫ whiskerRight adj.counit X ≫ (Functor.leftUnitor _).Hom
-          naturality' := by intros ; ext; dsimp; simp }
+          naturality' := by intros; ext; dsimp; simp }
       left_triangle := by
         ext x; dsimp
         simp only [category.id_comp, category.comp_id, ← x.map_comp]; simp
Diff
@@ -29,9 +29,6 @@ open CategoryTheory
 
 variable (C : Type _) {D E : Type _} [Category C] [Category D] [Category E] {F : D ⥤ E} {G : E ⥤ D}
 
-/- warning: category_theory.adjunction.whisker_right -> CategoryTheory.Adjunction.whiskerRight is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRightₓ'. -/
 --  `tidy` works for all the proofs in this definition, but it's fairly slow.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskering_right C _ _).obj F ⊣ (whiskering_right C _ _).obj G`. -/
@@ -51,9 +48,6 @@ protected def whiskerRight (adj : F ⊣ G) :
       right_triangle := by ext; dsimp; simp }
 #align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRight
 
-/- warning: category_theory.adjunction.whisker_left -> CategoryTheory.Adjunction.whiskerLeft is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.whisker_left CategoryTheory.Adjunction.whiskerLeftₓ'. -/
 -- `tidy` gets stuck for `left_triangle'` and `right_triangle'`.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskering_left _ _ C).obj G ⊣ (whiskering_left _ _ C).obj F`. -/
Diff
@@ -42,27 +42,13 @@ protected def whiskerRight (adj : F ⊣ G) :
     { Unit :=
         { app := fun X =>
             (Functor.rightUnitor _).inv ≫ whiskerLeft X adj.Unit ≫ (Functor.associator _ _ _).inv
-          naturality' := by
-            intros
-            ext
-            dsimp
-            simp }
+          naturality' := by intros ; ext; dsimp; simp }
       counit :=
         { app := fun X =>
             (Functor.associator _ _ _).Hom ≫ whiskerLeft X adj.counit ≫ (Functor.rightUnitor _).Hom
-          naturality' := by
-            intros
-            ext
-            dsimp
-            simp }
-      left_triangle := by
-        ext
-        dsimp
-        simp
-      right_triangle := by
-        ext
-        dsimp
-        simp }
+          naturality' := by intros ; ext; dsimp; simp }
+      left_triangle := by ext; dsimp; simp
+      right_triangle := by ext; dsimp; simp }
 #align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRight
 
 /- warning: category_theory.adjunction.whisker_left -> CategoryTheory.Adjunction.whiskerLeft is a dubious translation:
@@ -78,29 +64,17 @@ protected def whiskerLeft (adj : F ⊣ G) :
     { Unit :=
         { app := fun X =>
             (Functor.leftUnitor _).inv ≫ whiskerRight adj.Unit X ≫ (Functor.associator _ _ _).Hom
-          naturality' := by
-            intros
-            ext
-            dsimp
-            simp }
+          naturality' := by intros ; ext; dsimp; simp }
       counit :=
         { app := fun X =>
             (Functor.associator _ _ _).inv ≫ whiskerRight adj.counit X ≫ (Functor.leftUnitor _).Hom
-          naturality' := by
-            intros
-            ext
-            dsimp
-            simp }
+          naturality' := by intros ; ext; dsimp; simp }
       left_triangle := by
-        ext x
-        dsimp
-        simp only [category.id_comp, category.comp_id, ← x.map_comp]
-        simp
+        ext x; dsimp
+        simp only [category.id_comp, category.comp_id, ← x.map_comp]; simp
       right_triangle := by
-        ext x
-        dsimp
-        simp only [category.id_comp, category.comp_id, ← x.map_comp]
-        simp }
+        ext x; dsimp
+        simp only [category.id_comp, category.comp_id, ← x.map_comp]; simp }
 #align category_theory.adjunction.whisker_left CategoryTheory.Adjunction.whiskerLeft
 
 end CategoryTheory.Adjunction
Diff
@@ -30,10 +30,7 @@ open CategoryTheory
 variable (C : Type _) {D E : Type _} [Category C] [Category D] [Category E] {F : D ⥤ E} {G : E ⥤ D}
 
 /- warning: category_theory.adjunction.whisker_right -> CategoryTheory.Adjunction.whiskerRight is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u1 u5, max u1 u6, max u4 u5 u1 u2, max u4 u6 u1 u3} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.obj.{max u2 u6, max (max u4 u5 u1 u2) u1 u6, max u5 u6 u2 u3, max (max u1 u5) (max u1 u6) (max u4 u5 u1 u2) u4 u6 u1 u3} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u1 u5, max u1 u6, max u4 u5 u1 u2, max u4 u6 u1 u3} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u5, max u1 u6, max u4 u5 u1 u2, max u4 u6 u1 u3} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.whiskeringRight.{u1, u4, u2, u5, u3, u6} C _inst_1 D _inst_2 E _inst_3) F) (CategoryTheory.Functor.obj.{max u3 u5, max (max u4 u6 u1 u3) u1 u5, max u6 u5 u3 u2, max (max u1 u6) (max u1 u5) (max u4 u6 u1 u3) u4 u5 u1 u2} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u1 u6, max u1 u5, max u4 u6 u1 u3, max u4 u5 u1 u2} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Functor.category.{max u1 u6, max u1 u5, max u4 u6 u1 u3, max u4 u5 u1 u2} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.whiskeringRight.{u1, u4, u3, u6, u2, u5} C _inst_1 E _inst_3 D _inst_2) G))
-but is expected to have type
-  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u1 u5, max u1 u6, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (Prefunctor.obj.{max (succ u2) (succ u6), max (max (max (max (succ u1) (succ u2)) (succ u4)) (succ u5)) (succ u6), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u2) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u2) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u5, max u1 u6, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u6, max (max (max (max u1 u2) u4) u5) u6, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u5, max u1 u6, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.whiskeringRight.{u1, u4, u2, u5, u3, u6} C _inst_1 D _inst_2 E _inst_3)) F) (Prefunctor.obj.{max (succ u3) (succ u5), max (max (max (max (succ u1) (succ u3)) (succ u4)) (succ u5)) (succ u6), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2))) (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u3) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u3) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Functor.category.{max u1 u6, max u1 u5, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max u3 u5, max (max (max (max u1 u3) u4) u5) u6, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Functor.category.{max u1 u6, max u1 u5, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.whiskeringRight.{u1, u4, u3, u6, u2, u5} C _inst_1 E _inst_3 D _inst_2)) G))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRightₓ'. -/
 --  `tidy` works for all the proofs in this definition, but it's fairly slow.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
@@ -69,10 +66,7 @@ protected def whiskerRight (adj : F ⊣ G) :
 #align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRight
 
 /- warning: category_theory.adjunction.whisker_left -> CategoryTheory.Adjunction.whiskerLeft is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u2 u4, max u3 u4, max u5 u4 u2 u1, max u6 u4 u3 u1} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.obj.{max u3 u5, max (max u5 u4 u2 u1) u3 u4, max u6 u5 u3 u2, max (max u2 u4) (max u3 u4) (max u5 u4 u2 u1) u6 u4 u3 u1} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u2 u4, max u3 u4, max u5 u4 u2 u1, max u6 u4 u3 u1} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Functor.category.{max u2 u4, max u3 u4, max u5 u4 u2 u1, max u6 u4 u3 u1} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.whiskeringLeft.{u3, u6, u2, u5, u1, u4} E _inst_3 D _inst_2 C _inst_1) G) (CategoryTheory.Functor.obj.{max u2 u6, max (max u6 u4 u3 u1) u2 u4, max u5 u6 u2 u3, max (max u3 u4) (max u2 u4) (max u6 u4 u3 u1) u5 u4 u2 u1} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u3 u4, max u2 u4, max u6 u4 u3 u1, max u5 u4 u2 u1} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Functor.category.{max u3 u4, max u2 u4, max u6 u4 u3 u1, max u5 u4 u2 u1} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.whiskeringLeft.{u2, u5, u3, u6, u1, u4} D _inst_2 E _inst_3 C _inst_1) F))
-but is expected to have type
-  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (Prefunctor.obj.{max (succ u3) (succ u5), max (max (max (max (succ u1) (succ u2)) (succ u3)) (succ u4)) (succ u5), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2))) (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u2) u3) u4) u5, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u2) u3) u4) u5, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Functor.category.{max u2 u4, max u3 u4, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)))) (CategoryTheory.Functor.toPrefunctor.{max u3 u5, max (max (max (max u1 u2) u3) u4) u5, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Functor.category.{max u2 u4, max u3 u4, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.whiskeringLeft.{u3, u6, u2, u5, u1, u4} E _inst_3 D _inst_2 C _inst_1)) G) (Prefunctor.obj.{max (succ u2) (succ u6), max (max (max (max (succ u1) (succ u2)) (succ u3)) (succ u4)) (succ u6), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u2) u3) u4) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u2) u3) u4) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Functor.category.{max u3 u4, max u2 u4, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u6, max (max (max (max u1 u2) u3) u4) u6, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Functor.category.{max u3 u4, max u2 u4, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.whiskeringLeft.{u2, u5, u3, u6, u1, u4} D _inst_2 E _inst_3 C _inst_1)) F))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.whisker_left CategoryTheory.Adjunction.whiskerLeftₓ'. -/
 -- `tidy` gets stuck for `left_triangle'` and `right_triangle'`.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Adam Topaz
 
 ! This file was ported from Lean 3 source module category_theory.adjunction.whiskering
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 3dadefa3f544b1db6214777fe47910739b54c66a
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -12,6 +12,9 @@ import Mathbin.CategoryTheory.Whiskering
 import Mathbin.CategoryTheory.Adjunction.Basic
 
 /-!
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 
 Given categories `C D E`, functors `F : D ⥤ E` and `G : E ⥤ D` with an adjunction
 `F ⊣ G`, we provide the induced adjunction between the functor categories `C ⥤ D` and `C ⥤ E`,
Diff
@@ -26,6 +26,12 @@ open CategoryTheory
 
 variable (C : Type _) {D E : Type _} [Category C] [Category D] [Category E] {F : D ⥤ E} {G : E ⥤ D}
 
+/- warning: category_theory.adjunction.whisker_right -> CategoryTheory.Adjunction.whiskerRight is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u1 u5, max u1 u6, max u4 u5 u1 u2, max u4 u6 u1 u3} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.obj.{max u2 u6, max (max u4 u5 u1 u2) u1 u6, max u5 u6 u2 u3, max (max u1 u5) (max u1 u6) (max u4 u5 u1 u2) u4 u6 u1 u3} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u1 u5, max u1 u6, max u4 u5 u1 u2, max u4 u6 u1 u3} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u5, max u1 u6, max u4 u5 u1 u2, max u4 u6 u1 u3} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.whiskeringRight.{u1, u4, u2, u5, u3, u6} C _inst_1 D _inst_2 E _inst_3) F) (CategoryTheory.Functor.obj.{max u3 u5, max (max u4 u6 u1 u3) u1 u5, max u6 u5 u3 u2, max (max u1 u6) (max u1 u5) (max u4 u6 u1 u3) u4 u5 u1 u2} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u1 u6, max u1 u5, max u4 u6 u1 u3, max u4 u5 u1 u2} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Functor.category.{max u1 u6, max u1 u5, max u4 u6 u1 u3, max u4 u5 u1 u2} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.whiskeringRight.{u1, u4, u3, u6, u2, u5} C _inst_1 E _inst_3 D _inst_2) G))
+but is expected to have type
+  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u1 u5, max u1 u6, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (Prefunctor.obj.{max (succ u2) (succ u6), max (max (max (max (succ u1) (succ u2)) (succ u4)) (succ u5)) (succ u6), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u2) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u2) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u5, max u1 u6, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u6, max (max (max (max u1 u2) u4) u5) u6, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u1 u5, max u1 u6, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u5, max u1 u6, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3)) (CategoryTheory.whiskeringRight.{u1, u4, u2, u5, u3, u6} C _inst_1 D _inst_2 E _inst_3)) F) (Prefunctor.obj.{max (succ u3) (succ u5), max (max (max (max (succ u1) (succ u3)) (succ u4)) (succ u5)) (succ u6), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2))) (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u3) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u3) u4) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Functor.category.{max u1 u6, max u1 u5, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max u3 u5, max (max (max (max u1 u3) u4) u5) u6, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u1 u6, max u1 u5, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.Functor.category.{max u1 u6, max u1 u5, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u1, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.{u4, u5, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u5, u1, u2} C _inst_1 D _inst_2)) (CategoryTheory.whiskeringRight.{u1, u4, u3, u6, u2, u5} C _inst_1 E _inst_3 D _inst_2)) G))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRightₓ'. -/
 --  `tidy` works for all the proofs in this definition, but it's fairly slow.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskering_right C _ _).obj F ⊣ (whiskering_right C _ _).obj G`. -/
@@ -59,6 +65,12 @@ protected def whiskerRight (adj : F ⊣ G) :
         simp }
 #align category_theory.adjunction.whisker_right CategoryTheory.Adjunction.whiskerRight
 
+/- warning: category_theory.adjunction.whisker_left -> CategoryTheory.Adjunction.whiskerLeft is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u2 u4, max u3 u4, max u5 u4 u2 u1, max u6 u4 u3 u1} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.obj.{max u3 u5, max (max u5 u4 u2 u1) u3 u4, max u6 u5 u3 u2, max (max u2 u4) (max u3 u4) (max u5 u4 u2 u1) u6 u4 u3 u1} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u2 u4, max u3 u4, max u5 u4 u2 u1, max u6 u4 u3 u1} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Functor.category.{max u2 u4, max u3 u4, max u5 u4 u2 u1, max u6 u4 u3 u1} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.whiskeringLeft.{u3, u6, u2, u5, u1, u4} E _inst_3 D _inst_2 C _inst_1) G) (CategoryTheory.Functor.obj.{max u2 u6, max (max u6 u4 u3 u1) u2 u4, max u5 u6 u2 u3, max (max u3 u4) (max u2 u4) (max u6 u4 u3 u1) u5 u4 u2 u1} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u3 u4, max u2 u4, max u6 u4 u3 u1, max u5 u4 u2 u1} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Functor.category.{max u3 u4, max u2 u4, max u6 u4 u3 u1, max u5 u4 u2 u1} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.whiskeringLeft.{u2, u5, u3, u6, u1, u4} D _inst_2 E _inst_3 C _inst_1) F))
+but is expected to have type
+  forall (C : Type.{u1}) {D : Type.{u2}} {E : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u4, u1} C] [_inst_2 : CategoryTheory.Category.{u5, u2} D] [_inst_3 : CategoryTheory.Category.{u6, u3} E] {F : CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2}, (CategoryTheory.Adjunction.{u5, u6, u2, u3} D _inst_2 E _inst_3 F G) -> (CategoryTheory.Adjunction.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (Prefunctor.obj.{max (succ u3) (succ u5), max (max (max (max (succ u1) (succ u2)) (succ u3)) (succ u4)) (succ u5), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u5, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2))) (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u2) u3) u4) u5, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u2) u3) u4) u5, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Functor.category.{max u2 u4, max u3 u4, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)))) (CategoryTheory.Functor.toPrefunctor.{max u3 u5, max (max (max (max u1 u2) u3) u4) u5, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u6, u5, u3, u2} E _inst_3 D _inst_2) (CategoryTheory.Functor.{max u2 u4, max u3 u4, max (max (max u1 u2) u4) u5, max (max (max u1 u3) u4) u6} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.Functor.category.{max u2 u4, max u3 u4, max (max (max u2 u1) u5) u4, max (max (max u3 u1) u6) u4} (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1)) (CategoryTheory.whiskeringLeft.{u3, u6, u2, u5, u1, u4} E _inst_3 D _inst_2 C _inst_1)) G) (Prefunctor.obj.{max (succ u2) (succ u6), max (max (max (max (succ u1) (succ u2)) (succ u3)) (succ u4)) (succ u6), max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max (max (max u2 u3) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u2) u3) u4) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u2) u3) u4) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Functor.category.{max u3 u4, max u2 u4, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u6, max (max (max (max u1 u2) u3) u4) u6, max (max (max u2 u3) u5) u6, max (max (max (max (max u1 u2) u3) u4) u5) u6} (CategoryTheory.Functor.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u5, u6, u2, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u3 u4, max u2 u4, max (max (max u1 u3) u4) u6, max (max (max u1 u2) u4) u5} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.Functor.category.{max u3 u4, max u2 u4, max (max (max u3 u1) u6) u4, max (max (max u2 u1) u5) u4} (CategoryTheory.Functor.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u6, u4, u3, u1} E _inst_3 C _inst_1) (CategoryTheory.Functor.{u5, u4, u2, u1} D _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u5, u4, u2, u1} D _inst_2 C _inst_1)) (CategoryTheory.whiskeringLeft.{u2, u5, u3, u6, u1, u4} D _inst_2 E _inst_3 C _inst_1)) F))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.whisker_left CategoryTheory.Adjunction.whiskerLeftₓ'. -/
 -- `tidy` gets stuck for `left_triangle'` and `right_triangle'`.
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskering_left _ _ C).obj G ⊣ (whiskering_left _ _ C).obj F`. -/

Changes in mathlib4

mathlib3
mathlib4
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -21,7 +21,7 @@ namespace CategoryTheory.Adjunction
 
 open CategoryTheory
 
-variable (C : Type _) {D E : Type _} [Category C] [Category D] [Category E] {F : D ⥤ E} {G : E ⥤ D}
+variable (C : Type*) {D E : Type*} [Category C] [Category D] [Category E] {F : D ⥤ E} {G : E ⥤ D}
 
 /-- Given an adjunction `F ⊣ G`, this provides the natural adjunction
   `(whiskeringRight C _ _).obj F ⊣ (whiskeringRight C _ _).obj G`. -/
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Adam Topaz. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.adjunction.whiskering
-! leanprover-community/mathlib commit 28aa996fc6fb4317f0083c4e6daf79878d81be33
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Whiskering
 import Mathlib.CategoryTheory.Adjunction.Basic
 
+#align_import category_theory.adjunction.whiskering from "leanprover-community/mathlib"@"28aa996fc6fb4317f0083c4e6daf79878d81be33"
+
 /-!
 
 Given categories `C D E`, functors `F : D ⥤ E` and `G : E ⥤ D` with an adjunction
feat: Port CategoryTheory.Adjunction.Whiskering (#2408)

Rename and reflow only.

Dependencies 11

12 files ported (100.0%)
3108 lines ported (100.0%)

All dependencies are ported!