category_theory.adjunction.whiskering
⟷
Mathlib.CategoryTheory.Adjunction.Whiskering
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/22131150f88a2d125713ffa0f4693e3355b1eb49
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: 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`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -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`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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`. -/
@@ -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
All dependencies are ported!