category_theory.whiskeringMathlib.CategoryTheory.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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -113,8 +113,8 @@ def whiskeringRight : (D ⥤ E) ⥤ (C ⥤ D) ⥤ C ⥤ E
 variable {C} {D} {E}
 
 #print CategoryTheory.faithful_whiskeringRight_obj /-
-instance faithful_whiskeringRight_obj {F : D ⥤ E} [Faithful F] :
-    Faithful ((whiskeringRight C D E).obj F)
+instance faithful_whiskeringRight_obj {F : D ⥤ E} [CategoryTheory.Functor.Faithful F] :
+    CategoryTheory.Functor.Faithful ((whiskeringRight C D E).obj F)
     where map_injective' G H α β hαβ :=
     NatTrans.ext _ _ <|
       funext fun X => Functor.map_injective _ <| congr_fun (congr_arg NatTrans.app hαβ) X
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import CategoryTheory.Isomorphism
+import CategoryTheory.Iso
 import CategoryTheory.Functor.Category
 import CategoryTheory.Functor.FullyFaithful
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.CategoryTheory.Isomorphism
-import Mathbin.CategoryTheory.Functor.Category
-import Mathbin.CategoryTheory.Functor.FullyFaithful
+import CategoryTheory.Isomorphism
+import CategoryTheory.Functor.Category
+import CategoryTheory.Functor.FullyFaithful
 
 #align_import category_theory.whiskering from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.whiskering
-! leanprover-community/mathlib commit c3291da49cfa65f0d43b094750541c0731edc932
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Isomorphism
 import Mathbin.CategoryTheory.Functor.Category
 import Mathbin.CategoryTheory.Functor.FullyFaithful
 
+#align_import category_theory.whiskering from "leanprover-community/mathlib"@"c3291da49cfa65f0d43b094750541c0731edc932"
+
 /-!
 # Whiskering
 
Diff
@@ -115,12 +115,14 @@ def whiskeringRight : (D ⥤ E) ⥤ (C ⥤ D) ⥤ C ⥤ E
 
 variable {C} {D} {E}
 
+#print CategoryTheory.faithful_whiskeringRight_obj /-
 instance faithful_whiskeringRight_obj {F : D ⥤ E} [Faithful F] :
     Faithful ((whiskeringRight C D E).obj F)
     where map_injective' G H α β hαβ :=
     NatTrans.ext _ _ <|
       funext fun X => Functor.map_injective _ <| congr_fun (congr_arg NatTrans.app hαβ) X
 #align category_theory.faithful_whiskering_right_obj CategoryTheory.faithful_whiskeringRight_obj
+-/
 
 #print CategoryTheory.whiskerLeft_id /-
 @[simp]
Diff
@@ -115,12 +115,6 @@ def whiskeringRight : (D ⥤ E) ⥤ (C ⥤ D) ⥤ C ⥤ E
 
 variable {C} {D} {E}
 
-/- warning: category_theory.faithful_whiskering_right_obj -> CategoryTheory.faithful_whiskeringRight_obj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {F : CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3} [_inst_4 : CategoryTheory.Faithful.{u4, u6, u3, u5} D _inst_2 E _inst_3 F], CategoryTheory.Faithful.{max u1 u4, max u1 u6, max u2 u4 u1 u3, max u2 u6 u1 u5} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.obj.{max u3 u6, max (max u2 u4 u1 u3) u1 u6, max u4 u6 u3 u5, max (max u1 u4) (max u1 u6) (max u2 u4 u1 u3) u2 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u1 u4, max u1 u6, max u2 u4 u1 u3, max u2 u6 u1 u5} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u4, max u1 u6, max u2 u4 u1 u3, max u2 u6 u1 u5} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.whiskeringRight.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 E _inst_3) F)
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {F : CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3} [_inst_4 : CategoryTheory.Faithful.{u4, u6, u3, u5} D _inst_2 E _inst_3 F], CategoryTheory.Faithful.{max u1 u4, max u1 u6, max (max (max u1 u3) u2) u4, max (max (max u1 u5) u2) u6} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3) (Prefunctor.obj.{max (succ u3) (succ u6), max (max (max (max (succ u1) (succ u3)) (succ u2)) (succ u4)) (succ u6), max (max (max u3 u5) u4) u6, max (max (max (max (max u1 u3) u5) u2) u4) u6} (CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u6, max (max (max u3 u5) u4) u6} (CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u6, max (max (max u3 u5) u4) u6} (CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u3, u5} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{max u1 u4, max u1 u6, max (max (max u3 u1) u4) u2, max (max (max u5 u1) u6) u2} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u1 u3) u2) u4) u6, max (max (max (max (max u1 u3) u5) u2) u4) u6} (CategoryTheory.Functor.{max u1 u4, max u1 u6, max (max (max u3 u1) u4) u2, max (max (max u5 u1) u6) u2} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u1 u3) u2) u4) u6, max (max (max (max (max u1 u3) u5) u2) u4) u6} (CategoryTheory.Functor.{max u1 u4, max u1 u6, max (max (max u3 u1) u4) u2, max (max (max u5 u1) u6) u2} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u4, max u1 u6, max (max (max u1 u3) u2) u4, max (max (max u1 u5) u2) u6} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u3 u6, max (max (max (max u1 u3) u2) u4) u6, max (max (max u3 u5) u4) u6, max (max (max (max (max u1 u3) u5) u2) u4) u6} (CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u3, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{max u1 u4, max u1 u6, max (max (max u3 u1) u4) u2, max (max (max u5 u1) u6) u2} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.Functor.category.{max u1 u4, max u1 u6, max (max (max u1 u3) u2) u4, max (max (max u1 u5) u2) u6} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.{u2, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u2, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.whiskeringRight.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 E _inst_3)) F)
-Case conversion may be inaccurate. Consider using '#align category_theory.faithful_whiskering_right_obj CategoryTheory.faithful_whiskeringRight_objₓ'. -/
 instance faithful_whiskeringRight_obj {F : D ⥤ E} [Faithful F] :
     Faithful ((whiskeringRight C D E).obj F)
     where map_injective' G H α β hαβ :=
Diff
@@ -326,10 +326,7 @@ theorem assoc (F : A ⥤ B) (G : B ⥤ C) (H : C ⥤ D) : (F ⋙ G) ⋙ H = F 
 theorem triangle (F : A ⥤ B) (G : B ⥤ C) :
     (associator F (𝟭 B) G).Hom ≫ whiskerLeft F (leftUnitor G).Hom =
       whiskerRight (rightUnitor F).Hom G :=
-  by
-  ext
-  dsimp
-  simp
+  by ext; dsimp; simp
 #align category_theory.functor.triangle CategoryTheory.Functor.triangle
 -/
 
@@ -343,10 +340,7 @@ theorem pentagon :
     whiskerRight (associator F G H).Hom K ≫
         (associator F (G ⋙ H) K).Hom ≫ whiskerLeft F (associator G H K).Hom =
       (associator (F ⋙ G) H K).Hom ≫ (associator F G (H ⋙ K)).Hom :=
-  by
-  ext
-  dsimp
-  simp
+  by ext; dsimp; simp
 #align category_theory.functor.pentagon CategoryTheory.Functor.pentagon
 -/
 

Changes in mathlib4

mathlib3
mathlib4
feat(CategoryTheory): whiskering a fully faithful functor is full (#12527)

We already had that whiskering by a faithful functor is faithful. This PR also adds the relevant Full and Faithful instances for the sheaf version of whiskering, (sheafCompose).

Diff
@@ -114,6 +114,13 @@ instance faithful_whiskeringRight_obj {F : D ⥤ E} [F.Faithful] :
     exact F.map_injective <| congr_fun (congr_arg NatTrans.app hαβ) X
 #align category_theory.faithful_whiskering_right_obj CategoryTheory.faithful_whiskeringRight_obj
 
+instance full_whiskeringRight_obj {F : D ⥤ E} [F.Faithful] [F.Full] :
+    ((whiskeringRight C D E).obj F).Full where
+  map_surjective f := by
+    refine ⟨⟨fun P ↦ F.preimage (f.app P), fun _ _ _ ↦ F.map_injective ?_⟩, ?_⟩
+    · simpa using f.naturality _
+    · ext; simp
+
 @[simp]
 theorem whiskerLeft_id (F : C ⥤ D) {G : D ⥤ E} :
     whiskerLeft F (NatTrans.id G) = NatTrans.id (F.comp G) :=
chore: superfluous parentheses (#12116)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -111,7 +111,7 @@ instance faithful_whiskeringRight_obj {F : D ⥤ E} [F.Faithful] :
     ((whiskeringRight C D E).obj F).Faithful where
   map_injective hαβ := by
     ext X
-    exact (F.map_injective <| congr_fun (congr_arg NatTrans.app hαβ) X)
+    exact F.map_injective <| congr_fun (congr_arg NatTrans.app hαβ) X
 #align category_theory.faithful_whiskering_right_obj CategoryTheory.faithful_whiskeringRight_obj
 
 @[simp]
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

These notions on functors are now Functor.Full, Functor.Faithful, Functor.EssSurj, Functor.IsEquivalence, Functor.ReflectsIsomorphisms. Deprecated aliases are introduced for the previous names.

Diff
@@ -107,8 +107,8 @@ def whiskeringRight : (D ⥤ E) ⥤ (C ⥤ D) ⥤ C ⥤ E where
 
 variable {C} {D} {E}
 
-instance faithful_whiskeringRight_obj {F : D ⥤ E} [Faithful F] :
-    Faithful ((whiskeringRight C D E).obj F) where
+instance faithful_whiskeringRight_obj {F : D ⥤ E} [F.Faithful] :
+    ((whiskeringRight C D E).obj F).Faithful where
   map_injective hαβ := by
     ext X
     exact (F.map_injective <| congr_fun (congr_arg NatTrans.app hαβ) X)
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -226,7 +226,6 @@ namespace Functor
 universe u₅ v₅
 
 variable {A : Type u₁} [Category.{v₁} A]
-
 variable {B : Type u₂} [Category.{v₂} B]
 
 /-- The left unitor, a natural isomorphism `((𝟭 _) ⋙ F) ≅ F`.
@@ -252,7 +251,6 @@ def rightUnitor (F : A ⥤ B) :
 #align category_theory.functor.right_unitor_inv_app CategoryTheory.Functor.rightUnitor_inv_app
 
 variable {C : Type u₃} [Category.{v₃} C]
-
 variable {D : Type u₄} [Category.{v₄} D]
 
 /-- The associator for functors, a natural isomorphism `((F ⋙ G) ⋙ H) ≅ (F ⋙ (G ⋙ H))`.
@@ -280,7 +278,6 @@ theorem triangle (F : A ⥤ B) (G : B ⥤ C) :
 
 -- See note [dsimp, simp].
 variable {E : Type u₅} [Category.{v₅} E]
-
 variable (F : A ⥤ B) (G : B ⥤ C) (H : C ⥤ D) (K : D ⥤ E)
 
 theorem pentagon :
feat(CategoryTheory/Functor): definition of Kan extensions (#10195)

This PR introduces basic definitions for Kan extensions of functors. It prepares for future development of derived functors and a refactor of the file CategoryTheory.Limits.KanExtension.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -136,13 +136,13 @@ theorem whiskerRight_id' {G : C ⥤ D} (F : D ⥤ E) : whiskerRight (𝟙 G) F =
   ((whiskeringRight C D E).obj F).map_id _
 #align category_theory.whisker_right_id' CategoryTheory.whiskerRight_id'
 
-@[simp]
+@[simp, reassoc]
 theorem whiskerLeft_comp (F : C ⥤ D) {G H K : D ⥤ E} (α : G ⟶ H) (β : H ⟶ K) :
     whiskerLeft F (α ≫ β) = whiskerLeft F α ≫ whiskerLeft F β :=
   rfl
 #align category_theory.whisker_left_comp CategoryTheory.whiskerLeft_comp
 
-@[simp]
+@[simp, reassoc]
 theorem whiskerRight_comp {G H K : C ⥤ D} (α : G ⟶ H) (β : H ⟶ K) (F : D ⥤ E) :
     whiskerRight (α ≫ β) F = whiskerRight α F ≫ whiskerRight β F :=
   ((whiskeringRight C D E).obj F).map_comp α β
style: fix multiple spaces before colon (#7411)

Purely cosmetic PR

Diff
@@ -12,7 +12,7 @@ import Mathlib.CategoryTheory.Functor.FullyFaithful
 /-!
 # Whiskering
 
-Given a functor `F  : C ⥤ D` and functors `G H : D ⥤ E` and a natural transformation `α : G ⟶ H`,
+Given a functor `F : C ⥤ D` and functors `G H : D ⥤ E` and a natural transformation `α : G ⟶ H`,
 we can construct a new natural transformation `F ⋙ G ⟶ F ⋙ H`,
 called `whiskerLeft F α`. This is the same as the horizontal composition of `𝟙 F` with `α`.
 
chore: remove 'Ported by' headers (#6018)

Briefly during the port we were adding "Ported by" headers, but only ~60 / 3000 files ended up with such a header.

I propose deleting them.

We could consider adding these uniformly via a script, as part of the great history rewrite...?

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,7 +2,6 @@
 Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-Ported by: Joël Riou
 -/
 import Mathlib.CategoryTheory.Iso
 import Mathlib.CategoryTheory.Functor.Category
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
@@ -3,16 +3,13 @@ Copyright (c) 2018 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 Ported by: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.whiskering
-! leanprover-community/mathlib commit d012cd09a9b256d870751284dd6a29882b0be105
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Iso
 import Mathlib.CategoryTheory.Functor.Category
 import Mathlib.CategoryTheory.Functor.FullyFaithful
 
+#align_import category_theory.whiskering from "leanprover-community/mathlib"@"d012cd09a9b256d870751284dd6a29882b0be105"
+
 /-!
 # Whiskering
 
chore: add @[ext] lemmas for NatTrans synonyms (#5228)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -113,8 +113,9 @@ variable {C} {D} {E}
 
 instance faithful_whiskeringRight_obj {F : D ⥤ E} [Faithful F] :
     Faithful ((whiskeringRight C D E).obj F) where
-  map_injective hαβ := NatTrans.ext _ _
-    (funext fun X => (F.map_injective <| congr_fun (congr_arg NatTrans.app hαβ) X))
+  map_injective hαβ := by
+    ext X
+    exact (F.map_injective <| congr_fun (congr_arg NatTrans.app hαβ) X)
 #align category_theory.faithful_whiskering_right_obj CategoryTheory.faithful_whiskeringRight_obj
 
 @[simp]
chore: add missing #align statements (#1902)

This PR is the result of a slight variant on the following "algorithm"

  • take all mathlib 3 names, remove _ and make all uppercase letters into lowercase
  • take all mathlib 4 names, remove _ and make all uppercase letters into lowercase
  • look for matches, and create pairs (original_lean3_name, OriginalLean4Name)
  • for pairs that do not have an align statement:
    • use Lean 4 to lookup the file + position of the Lean 4 name
    • add an #align statement just before the next empty line
  • manually fix some tiny mistakes (e.g., empty lines in proofs might cause the #align statement to have been inserted too early)
Diff
@@ -53,6 +53,7 @@ def whiskerLeft (F : C ⥤ D) {G H : D ⥤ E} (α : G ⟶ H) :
   app X := α.app (F.obj X)
   naturality X Y f := by rw [Functor.comp_map, Functor.comp_map, α.naturality]
 #align category_theory.whisker_left CategoryTheory.whiskerLeft
+#align category_theory.whisker_left_app CategoryTheory.whiskerLeft_app
 
 /-- If `α : G ⟶ H` then
 `whisker_right α F : (G ⋙ F) ⟶ (G ⋙ F)` has components `F.map (α.app X)`.
@@ -64,6 +65,7 @@ def whiskerRight {G H : C ⥤ D} (α : G ⟶ H) (F : D ⥤ E) :
   naturality X Y f := by
     rw [Functor.comp_map, Functor.comp_map, ← F.map_comp, ← F.map_comp, α.naturality]
 #align category_theory.whisker_right CategoryTheory.whiskerRight
+#align category_theory.whisker_right_app CategoryTheory.whiskerRight_app
 
 variable (C D E)
 
@@ -83,6 +85,9 @@ def whiskeringLeft : (C ⥤ D) ⥤ (D ⥤ E) ⥤ C ⥤ E where
           naturality := fun X Y f => by dsimp; rw [← H.map_comp, ← H.map_comp, ← τ.naturality] }
       naturality := fun X Y f => by ext; dsimp; rw [f.naturality] }
 #align category_theory.whiskering_left CategoryTheory.whiskeringLeft
+#align category_theory.whiskering_left_obj_map CategoryTheory.whiskeringLeft_obj_map
+#align category_theory.whiskering_left_obj_obj CategoryTheory.whiskeringLeft_obj_obj
+#align category_theory.whiskering_left_map_app_app CategoryTheory.whiskeringLeft_map_app_app
 
 /-- Right-composition gives a functor `(D ⥤ E) ⥤ ((C ⥤ D) ⥤ (C ⥤ E))`.
 
@@ -100,6 +105,9 @@ def whiskeringRight : (D ⥤ E) ⥤ (C ⥤ D) ⥤ C ⥤ E where
           naturality := fun X Y f => by dsimp; rw [τ.naturality] }
       naturality := fun X Y f => by ext; dsimp; rw [← NatTrans.naturality] }
 #align category_theory.whiskering_right CategoryTheory.whiskeringRight
+#align category_theory.whiskering_right_map_app_app CategoryTheory.whiskeringRight_map_app_app
+#align category_theory.whiskering_right_obj_obj CategoryTheory.whiskeringRight_obj_obj
+#align category_theory.whiskering_right_obj_map CategoryTheory.whiskeringRight_obj_map
 
 variable {C} {D} {E}
 
@@ -232,6 +240,8 @@ def leftUnitor (F : A ⥤ B) :
   hom := { app := fun X => 𝟙 (F.obj X) }
   inv := { app := fun X => 𝟙 (F.obj X) }
 #align category_theory.functor.left_unitor CategoryTheory.Functor.leftUnitor
+#align category_theory.functor.left_unitor_inv_app CategoryTheory.Functor.leftUnitor_inv_app
+#align category_theory.functor.left_unitor_hom_app CategoryTheory.Functor.leftUnitor_hom_app
 
 /-- The right unitor, a natural isomorphism `(F ⋙ (𝟭 B)) ≅ F`.
 -/
@@ -241,6 +251,8 @@ def rightUnitor (F : A ⥤ B) :
   hom := { app := fun X => 𝟙 (F.obj X) }
   inv := { app := fun X => 𝟙 (F.obj X) }
 #align category_theory.functor.right_unitor CategoryTheory.Functor.rightUnitor
+#align category_theory.functor.right_unitor_hom_app CategoryTheory.Functor.rightUnitor_hom_app
+#align category_theory.functor.right_unitor_inv_app CategoryTheory.Functor.rightUnitor_inv_app
 
 variable {C : Type u₃} [Category.{v₃} C]
 
@@ -257,6 +269,8 @@ def associator (F : A ⥤ B) (G : B ⥤ C) (H : C ⥤ D) :
   hom := { app := fun _ => 𝟙 _ }
   inv := { app := fun _ => 𝟙 _ }
 #align category_theory.functor.associator CategoryTheory.Functor.associator
+#align category_theory.functor.associator_inv_app CategoryTheory.Functor.associator_inv_app
+#align category_theory.functor.associator_hom_app CategoryTheory.Functor.associator_hom_app
 
 protected theorem assoc (F : A ⥤ B) (G : B ⥤ C) (H : C ⥤ D) : (F ⋙ G) ⋙ H = F ⋙ G ⋙ H :=
   rfl
chore: fix most phantom #aligns (#1794)
Diff
@@ -173,7 +173,7 @@ def isoWhiskerRight {G H : C ⥤ D} (α : G ≅ H) (F : D ⥤ E) : G ⋙ F ≅ H
 theorem isoWhiskerRight_hom {G H : C ⥤ D} (α : G ≅ H) (F : D ⥤ E) :
     (isoWhiskerRight α F).hom = whiskerRight α.hom F :=
   rfl
-#align category_theory.isoWhiskerRight_hom CategoryTheory.isoWhiskerRight_hom
+#align category_theory.iso_whisker_right_hom CategoryTheory.isoWhiskerRight_hom
 
 @[simp]
 theorem isoWhiskerRight_inv {G H : C ⥤ D} (α : G ≅ H) (F : D ⥤ E) :
feat: port CategoryTheory.Whiskering (#1071)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: mpenciak <matej.penciak@gmail.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>

Dependencies 6

7 files ported (100.0%)
1575 lines ported (100.0%)

All dependencies are ported!