category_theory.typesMathlib.CategoryTheory.Types

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -242,10 +242,10 @@ theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
 #align category_theory.ulift_functor_map CategoryTheory.uliftFunctor_map
 -/
 
-#print CategoryTheory.uliftFunctorFull /-
-instance uliftFunctorFull : CategoryTheory.Functor.Full.{u} uliftFunctor
+#print CategoryTheory.uliftFunctor_full /-
+instance uliftFunctor_full : CategoryTheory.Functor.Full.{u} uliftFunctor
     where preimage X Y f x := (f (ULift.up x)).down
-#align category_theory.ulift_functor_full CategoryTheory.uliftFunctorFull
+#align category_theory.ulift_functor_full CategoryTheory.uliftFunctor_full
 -/
 
 #print CategoryTheory.uliftFunctor_faithful /-
Diff
@@ -243,12 +243,13 @@ theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
 -/
 
 #print CategoryTheory.uliftFunctorFull /-
-instance uliftFunctorFull : Full.{u} uliftFunctor where preimage X Y f x := (f (ULift.up x)).down
+instance uliftFunctorFull : CategoryTheory.Functor.Full.{u} uliftFunctor
+    where preimage X Y f x := (f (ULift.up x)).down
 #align category_theory.ulift_functor_full CategoryTheory.uliftFunctorFull
 -/
 
 #print CategoryTheory.uliftFunctor_faithful /-
-instance uliftFunctor_faithful : Faithful uliftFunctor
+instance uliftFunctor_faithful : CategoryTheory.Functor.Faithful uliftFunctor
     where map_injective' X Y f g p :=
     funext fun x =>
       congr_arg ULift.down (congr_fun p (ULift.up x) : ULift.up (f x) = ULift.up (g x))
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Stephen Morgan, Scott Morrison, Johannes Hölzl
 -/
-import Mathbin.CategoryTheory.EpiMono
-import Mathbin.CategoryTheory.Functor.FullyFaithful
-import Mathbin.Logic.Equiv.Basic
+import CategoryTheory.EpiMono
+import CategoryTheory.Functor.FullyFaithful
+import Logic.Equiv.Basic
 
 #align_import category_theory.types from "leanprover-community/mathlib"@"e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Stephen Morgan, Scott Morrison, Johannes Hölzl
-
-! This file was ported from Lean 3 source module category_theory.types
-! leanprover-community/mathlib commit e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.EpiMono
 import Mathbin.CategoryTheory.Functor.FullyFaithful
 import Mathbin.Logic.Equiv.Basic
 
+#align_import category_theory.types from "leanprover-community/mathlib"@"e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b"
+
 /-!
 # The category `Type`.
 
Diff
@@ -111,7 +111,6 @@ abbrev asHom {α β : Type u} (f : α → β) : α ⟶ β :=
 #align category_theory.as_hom CategoryTheory.asHom
 -/
 
--- mathport name: category_theory.as_hom
 -- If you don't mind some notation you can use fewer keystrokes:
 scoped[CategoryTheory.Type] notation "↾" f:200 => CategoryTheory.asHom f
 
@@ -134,6 +133,7 @@ namespace Functor
 
 variable {J : Type u} [Category.{v} J]
 
+#print CategoryTheory.Functor.sections /-
 /-- The sections of a functor `J ⥤ Type` are
 the choices of a point `u j : F.obj j` for each `j`,
 such that `F.map f (u j) = u j` for every morphism `f : j ⟶ j'`.
@@ -143,6 +143,7 @@ We later use these to define limits in `Type` and in many concrete categories.
 def sections (F : J ⥤ Type w) : Set (∀ j, F.obj j) :=
   {u | ∀ {j j'} (f : j ⟶ j'), F.map f (u j) = u j'}
 #align category_theory.functor.sections CategoryTheory.Functor.sections
+-/
 
 end Functor
 
@@ -152,50 +153,68 @@ variable {C : Type u} [Category.{v} C] (F G H : C ⥤ Type w) {X Y Z : C}
 
 variable (σ : F ⟶ G) (τ : G ⟶ H)
 
+#print CategoryTheory.FunctorToTypes.map_comp_apply /-
 @[simp]
 theorem map_comp_apply (f : X ⟶ Y) (g : Y ⟶ Z) (a : F.obj X) :
     (F.map (f ≫ g)) a = (F.map g) ((F.map f) a) := by simp [types_comp]
 #align category_theory.functor_to_types.map_comp_apply CategoryTheory.FunctorToTypes.map_comp_apply
+-/
 
+#print CategoryTheory.FunctorToTypes.map_id_apply /-
 @[simp]
 theorem map_id_apply (a : F.obj X) : (F.map (𝟙 X)) a = a := by simp [types_id]
 #align category_theory.functor_to_types.map_id_apply CategoryTheory.FunctorToTypes.map_id_apply
+-/
 
+#print CategoryTheory.FunctorToTypes.naturality /-
 theorem naturality (f : X ⟶ Y) (x : F.obj X) : σ.app Y ((F.map f) x) = (G.map f) (σ.app X x) :=
   congr_fun (σ.naturality f) x
 #align category_theory.functor_to_types.naturality CategoryTheory.FunctorToTypes.naturality
+-/
 
+#print CategoryTheory.FunctorToTypes.comp /-
 @[simp]
 theorem comp (x : F.obj X) : (σ ≫ τ).app X x = τ.app X (σ.app X x) :=
   rfl
 #align category_theory.functor_to_types.comp CategoryTheory.FunctorToTypes.comp
+-/
 
 variable {D : Type u'} [𝒟 : Category.{u'} D] (I J : D ⥤ C) (ρ : I ⟶ J) {W : D}
 
+#print CategoryTheory.FunctorToTypes.hcomp /-
 @[simp]
 theorem hcomp (x : (I ⋙ F).obj W) : (ρ ◫ σ).app W x = (G.map (ρ.app W)) (σ.app (I.obj W) x) :=
   rfl
 #align category_theory.functor_to_types.hcomp CategoryTheory.FunctorToTypes.hcomp
+-/
 
+#print CategoryTheory.FunctorToTypes.map_inv_map_hom_apply /-
 @[simp]
 theorem map_inv_map_hom_apply (f : X ≅ Y) (x : F.obj X) : F.map f.inv (F.map f.Hom x) = x :=
   congr_fun (F.mapIso f).hom_inv_id x
 #align category_theory.functor_to_types.map_inv_map_hom_apply CategoryTheory.FunctorToTypes.map_inv_map_hom_apply
+-/
 
+#print CategoryTheory.FunctorToTypes.map_hom_map_inv_apply /-
 @[simp]
 theorem map_hom_map_inv_apply (f : X ≅ Y) (y : F.obj Y) : F.map f.Hom (F.map f.inv y) = y :=
   congr_fun (F.mapIso f).inv_hom_id y
 #align category_theory.functor_to_types.map_hom_map_inv_apply CategoryTheory.FunctorToTypes.map_hom_map_inv_apply
+-/
 
+#print CategoryTheory.FunctorToTypes.hom_inv_id_app_apply /-
 @[simp]
 theorem hom_inv_id_app_apply (α : F ≅ G) (X) (x) : α.inv.app X (α.Hom.app X x) = x :=
   congr_fun (α.hom_inv_id_app X) x
 #align category_theory.functor_to_types.hom_inv_id_app_apply CategoryTheory.FunctorToTypes.hom_inv_id_app_apply
+-/
 
+#print CategoryTheory.FunctorToTypes.inv_hom_id_app_apply /-
 @[simp]
 theorem inv_hom_id_app_apply (α : F ≅ G) (X) (x) : α.Hom.app X (α.inv.app X x) = x :=
   congr_fun (α.inv_hom_id_app X) x
 #align category_theory.functor_to_types.inv_hom_id_app_apply CategoryTheory.FunctorToTypes.inv_hom_id_app_apply
+-/
 
 end FunctorToTypes
 
@@ -218,11 +237,13 @@ def uliftFunctor : Type u ⥤ Type max u v
 #align category_theory.ulift_functor CategoryTheory.uliftFunctor
 -/
 
+#print CategoryTheory.uliftFunctor_map /-
 @[simp]
 theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
     uliftFunctor.map f x = ULift.up (f x.down) :=
   rfl
 #align category_theory.ulift_functor_map CategoryTheory.uliftFunctor_map
+-/
 
 #print CategoryTheory.uliftFunctorFull /-
 instance uliftFunctorFull : Full.{u} uliftFunctor where preimage X Y f x := (f (ULift.up x)).down
@@ -321,16 +342,20 @@ def ofTypeFunctor (m : Type u → Type v) [Functor m] [LawfulFunctor m] : Type u
 
 variable (m : Type u → Type v) [Functor m] [LawfulFunctor m]
 
+#print CategoryTheory.ofTypeFunctor_obj /-
 @[simp]
 theorem ofTypeFunctor_obj : (ofTypeFunctor m).obj = m :=
   rfl
 #align category_theory.of_type_functor_obj CategoryTheory.ofTypeFunctor_obj
+-/
 
+#print CategoryTheory.ofTypeFunctor_map /-
 @[simp]
 theorem ofTypeFunctor_map {α β} (f : α → β) :
     (ofTypeFunctor m).map f = (Functor.map f : m α → m β) :=
   rfl
 #align category_theory.of_type_functor_map CategoryTheory.ofTypeFunctor_map
+-/
 
 end
 
Diff
@@ -141,7 +141,7 @@ such that `F.map f (u j) = u j` for every morphism `f : j ⟶ j'`.
 We later use these to define limits in `Type` and in many concrete categories.
 -/
 def sections (F : J ⥤ Type w) : Set (∀ j, F.obj j) :=
-  { u | ∀ {j j'} (f : j ⟶ j'), F.map f (u j) = u j' }
+  {u | ∀ {j j'} (f : j ⟶ j'), F.map f (u j) = u j'}
 #align category_theory.functor.sections CategoryTheory.Functor.sections
 
 end Functor
Diff
@@ -269,7 +269,7 @@ theorem mono_iff_injective {X Y : Type u} (f : X ⟶ Y) : Mono f ↔ Function.In
   constructor
   · intro H x x' h
     skip
-    rw [← hom_of_element_eq_iff] at h⊢
+    rw [← hom_of_element_eq_iff] at h ⊢
     exact (cancel_mono f).mp h
   · exact fun H => ⟨fun Z => H.compLeft⟩
 #align category_theory.mono_iff_injective CategoryTheory.mono_iff_injective
Diff
@@ -134,12 +134,6 @@ namespace Functor
 
 variable {J : Type u} [Category.{v} J]
 
-/- warning: category_theory.functor.sections -> CategoryTheory.Functor.sections is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} J] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}), Set.{max u3 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F j)
-but is expected to have type
-  forall {J : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} J] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2}), Set.{max u3 u2} (forall (j : J), Prefunctor.obj.{succ u1, succ u2, u3, succ u2} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} J (CategoryTheory.Category.toCategoryStruct.{u1, u3} J _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} J _inst_1 Type.{u2} CategoryTheory.types.{u2} F) j)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.sections CategoryTheory.Functor.sectionsₓ'. -/
 /-- The sections of a functor `J ⥤ Type` are
 the choices of a point `u j : F.obj j` for each `j`,
 such that `F.map f (u j) = u j` for every morphism `f : j ⟶ j'`.
@@ -158,43 +152,19 @@ variable {C : Type u} [Category.{v} C] (F G H : C ⥤ Type w) {X Y Z : C}
 
 variable (σ : F ⟶ G) (τ : G ⟶ H)
 
-/- warning: category_theory.functor_to_types.map_comp_apply -> CategoryTheory.FunctorToTypes.map_comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} {Z : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X Y) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y Z) (a : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F Z) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X Z (CategoryTheory.CategoryStruct.comp.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X Y Z f g) a) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F Y Z g (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X Y f a))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} {Z : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X Y) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y Z) (a : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) Z) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X Z (CategoryTheory.CategoryStruct.comp.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X Y Z f g) a) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) Y Z g (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X Y f a))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.map_comp_apply CategoryTheory.FunctorToTypes.map_comp_applyₓ'. -/
 @[simp]
 theorem map_comp_apply (f : X ⟶ Y) (g : Y ⟶ Z) (a : F.obj X) :
     (F.map (f ≫ g)) a = (F.map g) ((F.map f) a) := by simp [types_comp]
 #align category_theory.functor_to_types.map_comp_apply CategoryTheory.FunctorToTypes.map_comp_apply
 
-/- warning: category_theory.functor_to_types.map_id_apply -> CategoryTheory.FunctorToTypes.map_id_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} (a : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X X (CategoryTheory.CategoryStruct.id.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X) a) a
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} (a : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X X (CategoryTheory.CategoryStruct.id.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X) a) a
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.map_id_apply CategoryTheory.FunctorToTypes.map_id_applyₓ'. -/
 @[simp]
 theorem map_id_apply (a : F.obj X) : (F.map (𝟙 X)) a = a := by simp [types_id]
 #align category_theory.functor_to_types.map_id_apply CategoryTheory.FunctorToTypes.map_id_apply
 
-/- warning: category_theory.functor_to_types.naturality -> CategoryTheory.FunctorToTypes.naturality is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} (σ : Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) F G) (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X Y) (x : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G Y) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ Y (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X Y f x)) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G X Y f (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ X x))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} (σ : Quiver.Hom.{max (succ u3) (succ u2), max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) F G) (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X Y) (x : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G) Y) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ Y (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X Y f x)) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G) X Y f (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ X x))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.naturality CategoryTheory.FunctorToTypes.naturalityₓ'. -/
 theorem naturality (f : X ⟶ Y) (x : F.obj X) : σ.app Y ((F.map f) x) = (G.map f) (σ.app X x) :=
   congr_fun (σ.naturality f) x
 #align category_theory.functor_to_types.naturality CategoryTheory.FunctorToTypes.naturality
 
-/- warning: category_theory.functor_to_types.comp -> CategoryTheory.FunctorToTypes.comp is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (H : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} (σ : Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) F G) (τ : Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) G H) (x : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} H X) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F H (CategoryTheory.CategoryStruct.comp.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2})) F G H σ τ) X x) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G H τ X (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ X x))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (H : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} (σ : Quiver.Hom.{max (succ u3) (succ u2), max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) F G) (τ : Quiver.Hom.{max (succ u3) (succ u2), max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) G H) (x : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} H) X) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F H (CategoryTheory.CategoryStruct.comp.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2})) F G H σ τ) X x) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G H τ X (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ X x))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.comp CategoryTheory.FunctorToTypes.compₓ'. -/
 @[simp]
 theorem comp (x : F.obj X) : (σ ≫ τ).app X x = τ.app X (σ.app X x) :=
   rfl
@@ -202,56 +172,26 @@ theorem comp (x : F.obj X) : (σ ≫ τ).app X x = τ.app X (σ.app X x) :=
 
 variable {D : Type u'} [𝒟 : Category.{u'} D] (I J : D ⥤ C) (ρ : I ⟶ J) {W : D}
 
-/- warning: category_theory.functor_to_types.hcomp -> CategoryTheory.FunctorToTypes.hcomp is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (σ : Quiver.Hom.{succ (max u3 u2), max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) F G) {D : Type.{u4}} [𝒟 : CategoryTheory.Category.{u4, u4} D] (I : CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (J : CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (ρ : Quiver.Hom.{succ (max u4 u1), max u4 u1 u4 u3} (CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max u4 u1 u4 u3} (CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max u4 u1 u4 u3} (CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (CategoryTheory.Functor.category.{u4, u1, u4, u3} D 𝒟 C _inst_1))) I J) {W : D} (x : CategoryTheory.Functor.obj.{u4, u2, u4, succ u2} D 𝒟 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} I F) W), Eq.{succ u2} (CategoryTheory.Functor.obj.{u4, u2, u4, succ u2} D 𝒟 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} J G) W) (CategoryTheory.NatTrans.app.{u4, u2, u4, succ u2} D 𝒟 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} I F) (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} J G) (CategoryTheory.NatTrans.hcomp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} I J F G ρ σ) W x) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G (CategoryTheory.Functor.obj.{u4, u1, u4, u3} D 𝒟 C _inst_1 I W) (CategoryTheory.Functor.obj.{u4, u1, u4, u3} D 𝒟 C _inst_1 J W) (CategoryTheory.NatTrans.app.{u4, u1, u4, u3} D 𝒟 C _inst_1 I J ρ W) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ (CategoryTheory.Functor.obj.{u4, u1, u4, u3} D 𝒟 C _inst_1 I W) x))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (σ : Quiver.Hom.{max (succ u3) (succ u2), max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}))) F G) {D : Type.{u4}} [𝒟 : CategoryTheory.Category.{u4, u4} D] (I : CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (J : CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (ρ : Quiver.Hom.{max (succ u4) (succ u1), max (max u3 u4) u1} (CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u1, max (max u3 u4) u1} (CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u4 u1, max (max u3 u4) u1} (CategoryTheory.Functor.{u4, u1, u4, u3} D 𝒟 C _inst_1) (CategoryTheory.Functor.category.{u4, u1, u4, u3} D 𝒟 C _inst_1))) I J) {W : D} (x : Prefunctor.obj.{succ u4, succ u2, u4, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u4} D (CategoryTheory.Category.toCategoryStruct.{u4, u4} D 𝒟)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u4, u2, u4, succ u2} D 𝒟 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} I F)) W), Eq.{succ u2} (Prefunctor.obj.{succ u4, succ u2, u4, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u4} D (CategoryTheory.Category.toCategoryStruct.{u4, u4} D 𝒟)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u4, u2, u4, succ u2} D 𝒟 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} J G)) W) (CategoryTheory.NatTrans.app.{u4, u2, u4, succ u2} D 𝒟 Type.{u2} CategoryTheory.types.{u2} (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} I F) (CategoryTheory.Functor.comp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} J G) (CategoryTheory.NatTrans.hcomp.{u4, u1, u2, u4, u3, succ u2} D 𝒟 C _inst_1 Type.{u2} CategoryTheory.types.{u2} I J F G ρ σ) W x) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G) (Prefunctor.obj.{succ u4, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u4} D (CategoryTheory.Category.toCategoryStruct.{u4, u4} D 𝒟)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u4, u3} D 𝒟 C _inst_1 I) W) (Prefunctor.obj.{succ u4, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u4} D (CategoryTheory.Category.toCategoryStruct.{u4, u4} D 𝒟)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u4, u3} D 𝒟 C _inst_1 J) W) (CategoryTheory.NatTrans.app.{u4, u1, u4, u3} D 𝒟 C _inst_1 I J ρ W) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G σ (Prefunctor.obj.{succ u4, succ u1, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u4} D (CategoryTheory.Category.toCategoryStruct.{u4, u4} D 𝒟)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u1, u4, u3} D 𝒟 C _inst_1 I) W) x))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.hcomp CategoryTheory.FunctorToTypes.hcompₓ'. -/
 @[simp]
 theorem hcomp (x : (I ⋙ F).obj W) : (ρ ◫ σ).app W x = (G.map (ρ.app W)) (σ.app (I.obj W) x) :=
   rfl
 #align category_theory.functor_to_types.hcomp CategoryTheory.FunctorToTypes.hcomp
 
-/- warning: category_theory.functor_to_types.map_inv_map_hom_apply -> CategoryTheory.FunctorToTypes.map_inv_map_hom_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} (f : CategoryTheory.Iso.{u1, u3} C _inst_1 X Y) (x : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F Y X (CategoryTheory.Iso.inv.{u1, u3} C _inst_1 X Y f) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X Y (CategoryTheory.Iso.hom.{u1, u3} C _inst_1 X Y f) x)) x
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} (f : CategoryTheory.Iso.{u1, u3} C _inst_1 X Y) (x : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) Y X (CategoryTheory.Iso.inv.{u1, u3} C _inst_1 X Y f) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X Y (CategoryTheory.Iso.hom.{u1, u3} C _inst_1 X Y f) x)) x
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.map_inv_map_hom_apply CategoryTheory.FunctorToTypes.map_inv_map_hom_applyₓ'. -/
 @[simp]
 theorem map_inv_map_hom_apply (f : X ≅ Y) (x : F.obj X) : F.map f.inv (F.map f.Hom x) = x :=
   congr_fun (F.mapIso f).hom_inv_id x
 #align category_theory.functor_to_types.map_inv_map_hom_apply CategoryTheory.FunctorToTypes.map_inv_map_hom_apply
 
-/- warning: category_theory.functor_to_types.map_hom_map_inv_apply -> CategoryTheory.FunctorToTypes.map_hom_map_inv_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} (f : CategoryTheory.Iso.{u1, u3} C _inst_1 X Y) (y : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F Y), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F Y) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X Y (CategoryTheory.Iso.hom.{u1, u3} C _inst_1 X Y f) (CategoryTheory.Functor.map.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F Y X (CategoryTheory.Iso.inv.{u1, u3} C _inst_1 X Y f) y)) y
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) {X : C} {Y : C} (f : CategoryTheory.Iso.{u1, u3} C _inst_1 X Y) (y : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) Y), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) Y) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X Y (CategoryTheory.Iso.hom.{u1, u3} C _inst_1 X Y f) (Prefunctor.map.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) Y X (CategoryTheory.Iso.inv.{u1, u3} C _inst_1 X Y f) y)) y
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.map_hom_map_inv_apply CategoryTheory.FunctorToTypes.map_hom_map_inv_applyₓ'. -/
 @[simp]
 theorem map_hom_map_inv_apply (f : X ≅ Y) (y : F.obj Y) : F.map f.Hom (F.map f.inv y) = y :=
   congr_fun (F.mapIso f).inv_hom_id y
 #align category_theory.functor_to_types.map_hom_map_inv_apply CategoryTheory.FunctorToTypes.map_hom_map_inv_apply
 
-/- warning: category_theory.functor_to_types.hom_inv_id_app_apply -> CategoryTheory.FunctorToTypes.hom_inv_id_app_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (α : CategoryTheory.Iso.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G) (X : C) (x : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F X) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G F (CategoryTheory.Iso.inv.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G (CategoryTheory.Iso.hom.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X x)) x
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (α : CategoryTheory.Iso.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G) (X : C) (x : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F) X) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G F (CategoryTheory.Iso.inv.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G (CategoryTheory.Iso.hom.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X x)) x
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.hom_inv_id_app_apply CategoryTheory.FunctorToTypes.hom_inv_id_app_applyₓ'. -/
 @[simp]
 theorem hom_inv_id_app_apply (α : F ≅ G) (X) (x) : α.inv.app X (α.Hom.app X x) = x :=
   congr_fun (α.hom_inv_id_app X) x
 #align category_theory.functor_to_types.hom_inv_id_app_apply CategoryTheory.FunctorToTypes.hom_inv_id_app_apply
 
-/- warning: category_theory.functor_to_types.inv_hom_id_app_apply -> CategoryTheory.FunctorToTypes.inv_hom_id_app_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (α : CategoryTheory.Iso.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G) (X : C) (x : CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G X), Eq.{succ u2} (CategoryTheory.Functor.obj.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G X) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G (CategoryTheory.Iso.hom.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G F (CategoryTheory.Iso.inv.{max u3 u2, max u1 u2 u3 (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X x)) x
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (F : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (G : CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (α : CategoryTheory.Iso.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G) (X : C) (x : Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G) X), Eq.{succ u2} (Prefunctor.obj.{succ u1, succ u2, u3, succ u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G) X) (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} F G (CategoryTheory.Iso.hom.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X (CategoryTheory.NatTrans.app.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2} G F (CategoryTheory.Iso.inv.{max u3 u2, max (max u3 u1) (succ u2)} (CategoryTheory.Functor.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) (CategoryTheory.Functor.category.{u1, u2, u3, succ u2} C _inst_1 Type.{u2} CategoryTheory.types.{u2}) F G α) X x)) x
-Case conversion may be inaccurate. Consider using '#align category_theory.functor_to_types.inv_hom_id_app_apply CategoryTheory.FunctorToTypes.inv_hom_id_app_applyₓ'. -/
 @[simp]
 theorem inv_hom_id_app_apply (α : F ≅ G) (X) (x) : α.Hom.app X (α.inv.app X x) = x :=
   congr_fun (α.inv_hom_id_app X) x
@@ -278,12 +218,6 @@ def uliftFunctor : Type u ⥤ Type max u v
 #align category_theory.ulift_functor CategoryTheory.uliftFunctor
 -/
 
-/- warning: category_theory.ulift_functor_map -> CategoryTheory.uliftFunctor_map is a dubious translation:
-lean 3 declaration is
-  forall {X : Type.{u2}} {Y : Type.{u2}} (f : Quiver.Hom.{succ u2, succ u2} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) X Y) (x : ULift.{u1, u2} X), Eq.{succ (max u2 u1)} (CategoryTheory.Functor.obj.{u2, max u2 u1, succ u2, succ (max u2 u1)} Type.{u2} CategoryTheory.types.{u2} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} CategoryTheory.uliftFunctor.{u1, u2} Y) (CategoryTheory.Functor.map.{u2, max u2 u1, succ u2, succ (max u2 u1)} Type.{u2} CategoryTheory.types.{u2} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} CategoryTheory.uliftFunctor.{u1, u2} X Y f x) (ULift.up.{u1, u2} Y (f (ULift.down.{u1, u2} X x)))
-but is expected to have type
-  forall {X : Type.{u2}} {Y : Type.{u2}} (f : Quiver.Hom.{succ u2, succ u2} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) X Y) (x : ULift.{u1, u2} X), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, succ u2, max (succ u2) (succ u1)} Type.{u2} CategoryTheory.types.{u2} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} CategoryTheory.uliftFunctor.{u1, u2}) Y) (Prefunctor.map.{succ u2, max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, succ u2, max (succ u2) (succ u1)} Type.{u2} CategoryTheory.types.{u2} Type.{max u2 u1} CategoryTheory.types.{max u2 u1} CategoryTheory.uliftFunctor.{u1, u2}) X Y f x) (ULift.up.{u1, u2} Y (f (ULift.down.{u1, u2} X x)))
-Case conversion may be inaccurate. Consider using '#align category_theory.ulift_functor_map CategoryTheory.uliftFunctor_mapₓ'. -/
 @[simp]
 theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
     uliftFunctor.map f x = ULift.up (f x.down) :=
@@ -387,23 +321,11 @@ def ofTypeFunctor (m : Type u → Type v) [Functor m] [LawfulFunctor m] : Type u
 
 variable (m : Type u → Type v) [Functor m] [LawfulFunctor m]
 
-/- warning: category_theory.of_type_functor_obj -> CategoryTheory.ofTypeFunctor_obj is a dubious translation:
-lean 3 declaration is
-  forall (m : Type.{u2} -> Type.{u1}) [_inst_1 : Functor.{u2, u1} m] [_inst_2 : LawfulFunctor.{u2, u1} m _inst_1], Eq.{max (succ (succ u2)) (succ (succ u1))} (Type.{u2} -> Type.{u1}) (CategoryTheory.Functor.obj.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2)) m
-but is expected to have type
-  forall (m : Type.{u2} -> Type.{u1}) [_inst_1 : Functor.{u2, u1} m] [_inst_2 : LawfulFunctor.{u2, u1} m _inst_1], Eq.{max (succ (succ u2)) (succ (succ u1))} (Type.{u2} -> Type.{u1}) (Prefunctor.obj.{succ u2, succ u1, succ u2, succ u1} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2))) m
-Case conversion may be inaccurate. Consider using '#align category_theory.of_type_functor_obj CategoryTheory.ofTypeFunctor_objₓ'. -/
 @[simp]
 theorem ofTypeFunctor_obj : (ofTypeFunctor m).obj = m :=
   rfl
 #align category_theory.of_type_functor_obj CategoryTheory.ofTypeFunctor_obj
 
-/- warning: category_theory.of_type_functor_map -> CategoryTheory.ofTypeFunctor_map is a dubious translation:
-lean 3 declaration is
-  forall (m : Type.{u2} -> Type.{u1}) [_inst_1 : Functor.{u2, u1} m] [_inst_2 : LawfulFunctor.{u2, u1} m _inst_1] {α : Type.{u2}} {β : Type.{u2}} (f : α -> β), Eq.{succ u1} (Quiver.Hom.{succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.obj.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2) α) (CategoryTheory.Functor.obj.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2) β)) (CategoryTheory.Functor.map.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2) α β f) (Functor.map.{u2, u1} m _inst_1 α β f)
-but is expected to have type
-  forall (m : Type.{u2} -> Type.{u1}) [_inst_1 : Functor.{u2, u1} m] [_inst_2 : LawfulFunctor.{u2, u1} m _inst_1] {α : Type.{u2}} {β : Type.{u2}} (f : α -> β), Eq.{succ u1} (Quiver.Hom.{succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (Prefunctor.obj.{succ u2, succ u1, succ u2, succ u1} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2)) α) (Prefunctor.obj.{succ u2, succ u1, succ u2, succ u1} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2)) β)) (Prefunctor.map.{succ u2, succ u1, succ u2, succ u1} Type.{u2} (CategoryTheory.CategoryStruct.toQuiver.{u2, succ u2} Type.{u2} (CategoryTheory.Category.toCategoryStruct.{u2, succ u2} Type.{u2} CategoryTheory.types.{u2})) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, succ u2, succ u1} Type.{u2} CategoryTheory.types.{u2} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.ofTypeFunctor.{u1, u2} m _inst_1 _inst_2)) α β f) (Functor.map.{u2, u1} m _inst_1 α β f)
-Case conversion may be inaccurate. Consider using '#align category_theory.of_type_functor_map CategoryTheory.ofTypeFunctor_mapₓ'. -/
 @[simp]
 theorem ofTypeFunctor_map {α β} (f : α → β) :
     (ofTypeFunctor m).map f = (Functor.map f : m α → m β) :=

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): make Functor.Full a Prop (#12449)

Before this PR, Functor.Full contained the data of the preimage of maps by a full functor F. This PR makes Functor.Full a proposition. This is to prevent any diamond to appear.

The lemma Functor.image_preimage is also renamed Functor.map_preimage.

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

Diff
@@ -225,9 +225,9 @@ theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
   rfl
 #align category_theory.ulift_functor_map CategoryTheory.uliftFunctor_map
 
-instance uliftFunctorFull : Functor.Full.{u} uliftFunctor where
-  preimage f x := (f (ULift.up x)).down
-#align category_theory.ulift_functor_full CategoryTheory.uliftFunctorFull
+instance uliftFunctor_full : Functor.Full.{u} uliftFunctor where
+  map_surjective f := ⟨fun x => (f (ULift.up x)).down, rfl⟩
+#align category_theory.ulift_functor_full CategoryTheory.uliftFunctor_full
 
 instance uliftFunctor_faithful : uliftFunctor.Faithful where
   map_injective {_X} {_Y} f g p :=
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
@@ -225,10 +225,11 @@ theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
   rfl
 #align category_theory.ulift_functor_map CategoryTheory.uliftFunctor_map
 
-instance uliftFunctorFull : Full.{u} uliftFunctor where preimage f x := (f (ULift.up x)).down
+instance uliftFunctorFull : Functor.Full.{u} uliftFunctor where
+  preimage f x := (f (ULift.up x)).down
 #align category_theory.ulift_functor_full CategoryTheory.uliftFunctorFull
 
-instance uliftFunctor_faithful : Faithful uliftFunctor where
+instance uliftFunctor_faithful : uliftFunctor.Faithful where
   map_injective {_X} {_Y} f g p :=
     funext fun x =>
       congr_arg ULift.down (congr_fun p (ULift.up x) : ULift.up (f x) = ULift.up (g 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
@@ -147,7 +147,6 @@ end Functor
 namespace FunctorToTypes
 
 variable {C : Type u} [Category.{v} C] (F G H : C ⥤ Type w) {X Y Z : C}
-
 variable (σ : F ⟶ G) (τ : G ⟶ H)
 
 @[simp]
chore: remove useless tactics (#11333)

The removal of some pointless tactics flagged by #11308.

Diff
@@ -258,7 +258,6 @@ See <https://stacks.math.columbia.edu/tag/003C>.
 theorem mono_iff_injective {X Y : Type u} (f : X ⟶ Y) : Mono f ↔ Function.Injective f := by
   constructor
   · intro H x x' h
-    skip
     rw [← homOfElement_eq_iff] at h ⊢
     exact (cancel_mono f).mp h
   · exact fun H => ⟨fun g g' h => H.comp_left h⟩
refactor: generalize universes for colimits in Type (#11148)

This is a smaller version of #7020. Before this PR, for limits, we gave instances for small indexing categories, but for colimits, we gave instances for TypeMax. This PR changes so that we give instances for small indexing categories in both cases. This is more general and also more uniform.

Co-authored-by: Joël Riou <rioujoel@gmail.com>

Diff
@@ -130,6 +130,9 @@ lemma sections_property {F : J ⥤ Type w} (s : (F.sections : Type _))
     {j j' : J} (f : j ⟶ j') : F.map f (s.val j) = s.val j' :=
   s.property f
 
+lemma sections_ext_iff {F : J ⥤ Type w} {x y : F.sections} : x = y ↔ ∀ j, x.val j = y.val j :=
+  Subtype.ext_iff.trans Function.funext_iff
+
 variable (J)
 
 /-- The functor which sends a functor to types to its sections. -/
doc: replace typo'd j with j' (#11136)
Diff
@@ -116,7 +116,7 @@ variable {J : Type u} [Category.{v} J]
 
 /-- The sections of a functor `J ⥤ Type` are
 the choices of a point `u j : F.obj j` for each `j`,
-such that `F.map f (u j) = u j` for every morphism `f : j ⟶ j'`.
+such that `F.map f (u j) = u j'` for every morphism `f : j ⟶ j'`.
 
 We later use these to define limits in `Type` and in many concrete categories.
 -/
chore: classify added lemma porting notes (#10926)
Diff
@@ -124,7 +124,7 @@ def sections (F : J ⥤ Type w) : Set (∀ j, F.obj j) :=
   { u | ∀ {j j'} (f : j ⟶ j'), F.map f (u j) = u j' }
 #align category_theory.functor.sections CategoryTheory.Functor.sections
 
--- porting note: added this simp lemma
+-- Porting note (#10756): added this simp lemma
 @[simp]
 lemma sections_property {F : J ⥤ Type w} (s : (F.sections : Type _))
     {j j' : J} (f : j ⟶ j') : F.map f (s.val j) = s.val j' :=
chore: classify lemma was not necessary porting notes (category theory) (#10674)

Classifies by adding issue number (#10688) to porting notes claiming ext/simp lemma was not necessary.

Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>

Diff
@@ -52,7 +52,7 @@ theorem types_hom {α β : Type u} : (α ⟶ β) = (α → β) :=
   rfl
 #align category_theory.types_hom CategoryTheory.types_hom
 
--- porting note: this lemma was not here in Lean 3. Lean 3 `ext` would solve this goal
+-- porting note (#10688): this lemma was not here in Lean 3. Lean 3 `ext` would solve this goal
 -- because of its "if all else fails, apply all `ext` lemmas" policy,
 -- which apparently we want to move away from.
 @[ext] theorem types_ext {α β : Type u} (f g : α ⟶ β) (h : ∀ a : α, f a = g a) : f = g := by
feat: safe variants of eqToHom_map (#10243)

eqToHom_map is notoriously not a good simp lemma, but these variants should be safe and already go a long way.

Diff
@@ -165,6 +165,11 @@ theorem comp (x : F.obj X) : (σ ≫ τ).app X x = τ.app X (σ.app X x) :=
   rfl
 #align category_theory.functor_to_types.comp CategoryTheory.FunctorToTypes.comp
 
+@[simp]
+theorem eqToHom_map_comp_apply (p : X = Y) (q : Y = Z) (x : F.obj X) :
+    F.map (eqToHom q) (F.map (eqToHom p) x) = F.map (eqToHom <| p.trans q) x := by
+  aesop_cat
+
 variable {D : Type u'} [𝒟 : Category.{u'} D] (I J : D ⥤ C) (ρ : I ⟶ J) {W : D}
 
 @[simp]
chore: fix some Lean-3-isms in comments (#10240)
Diff
@@ -396,7 +396,7 @@ instance : SplitEpiCategory (Type u) where
 end CategoryTheory
 
 -- We prove `equivIsoIso` and then use that to sneakily construct `equivEquivIso`.
--- (In this order the proofs are handled by `obviously`.)
+-- (In this order the proofs are handled by `aesop_cat`.)
 /-- Equivalences (between types in the same universe) are the same as (isomorphic to) isomorphisms
 of types. -/
 @[simps]
chore(*): shake imports (#10199)
  • Remove Data.Set.Basic from scripts/noshake.json.
  • Remove an exception that was used by examples only, move these examples to a new test file.
  • Drop an exception for Order.Filter.Basic dependency on Control.Traversable.Instances, as the relevant parts were moved to Order.Filter.ListTraverse.
  • Run lake exe shake --fix.
Diff
@@ -5,8 +5,8 @@ Authors: Stephen Morgan, Scott Morrison, Johannes Hölzl
 -/
 import Mathlib.CategoryTheory.EpiMono
 import Mathlib.CategoryTheory.Functor.FullyFaithful
-import Mathlib.Data.Set.Basic
 import Mathlib.Tactic.PPWithUniv
+import Mathlib.Data.Set.Defs
 
 #align_import category_theory.types from "leanprover-community/mathlib"@"48085f140e684306f9e7da907cd5932056d1aded"
 
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -5,7 +5,6 @@ Authors: Stephen Morgan, Scott Morrison, Johannes Hölzl
 -/
 import Mathlib.CategoryTheory.EpiMono
 import Mathlib.CategoryTheory.Functor.FullyFaithful
-import Mathlib.Logic.Equiv.Basic
 import Mathlib.Data.Set.Basic
 import Mathlib.Tactic.PPWithUniv
 
feat(CategoryTheory/Sites): the sheaf of morphisms between two sheaves (#8737)
Diff
@@ -131,6 +131,15 @@ lemma sections_property {F : J ⥤ Type w} (s : (F.sections : Type _))
     {j j' : J} (f : j ⟶ j') : F.map f (s.val j) = s.val j' :=
   s.property f
 
+variable (J)
+
+/-- The functor which sends a functor to types to its sections. -/
+@[simps]
+def sectionsFunctor : (J ⥤ Type w) ⥤ Type max u w where
+  obj F := F.sections
+  map {F G} φ x := ⟨fun j => φ.app j (x.1 j), fun {j j'} f =>
+    (congr_fun (φ.naturality f) (x.1 j)).symm.trans (by simp [x.2 f])⟩
+
 end Functor
 
 namespace FunctorToTypes
chore: exactly 4 spaces in theorems (#7328)

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

Diff
@@ -128,7 +128,7 @@ def sections (F : J ⥤ Type w) : Set (∀ j, F.obj j) :=
 -- porting note: added this simp lemma
 @[simp]
 lemma sections_property {F : J ⥤ Type w} (s : (F.sections : Type _))
-  {j j' : J} (f : j ⟶ j') : F.map f (s.val j) = s.val j' :=
+    {j j' : J} (f : j ⟶ j') : F.map f (s.val j) = s.val j' :=
   s.property f
 
 end Functor
style: fix wrapping of where (#7149)
Diff
@@ -213,8 +213,8 @@ theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
 instance uliftFunctorFull : Full.{u} uliftFunctor where preimage f x := (f (ULift.up x)).down
 #align category_theory.ulift_functor_full CategoryTheory.uliftFunctorFull
 
-instance uliftFunctor_faithful : Faithful uliftFunctor
-    where map_injective {_X} {_Y} f g p :=
+instance uliftFunctor_faithful : Faithful uliftFunctor where
+  map_injective {_X} {_Y} f g p :=
     funext fun x =>
       congr_arg ULift.down (congr_fun p (ULift.up x) : ULift.up (f x) = ULift.up (g x))
 #align category_theory.ulift_functor_faithful CategoryTheory.uliftFunctor_faithful
@@ -379,8 +379,8 @@ theorem isIso_iff_bijective {X Y : Type u} (f : X ⟶ Y) : IsIso f ↔ Function.
     IsIso.of_iso (Equiv.ofBijective f b).toIso
 #align category_theory.is_iso_iff_bijective CategoryTheory.isIso_iff_bijective
 
-instance : SplitEpiCategory (Type u)
-    where isSplitEpi_of_epi f hf :=
+instance : SplitEpiCategory (Type u) where
+  isSplitEpi_of_epi f hf :=
     IsSplitEpi.mk' <|
       { section_ := Function.surjInv <| (epi_iff_surjective f).1 hf
         id := funext <| Function.rightInverse_surjInv <| (epi_iff_surjective f).1 hf }
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2017 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Stephen Morgan, Scott Morrison, Johannes Hölzl
-
-! This file was ported from Lean 3 source module category_theory.types
-! leanprover-community/mathlib commit 48085f140e684306f9e7da907cd5932056d1aded
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.EpiMono
 import Mathlib.CategoryTheory.Functor.FullyFaithful
@@ -14,6 +9,8 @@ import Mathlib.Logic.Equiv.Basic
 import Mathlib.Data.Set.Basic
 import Mathlib.Tactic.PPWithUniv
 
+#align_import category_theory.types from "leanprover-community/mathlib"@"48085f140e684306f9e7da907cd5932056d1aded"
+
 /-!
 # The category `Type`.
 
refactor: make pp_with_univ be an attribute (#5633)
Diff
@@ -200,14 +200,13 @@ def uliftTrivial (V : Type u) : ULift.{u} V ≅ V where
 /-- The functor embedding `Type u` into `Type (max u v)`.
 Write this as `uliftFunctor.{5, 2}` to get `Type 2 ⥤ Type 5`.
 -/
+@[pp_with_univ]
 def uliftFunctor : Type u ⥤ Type max u v
     where
   obj X := ULift.{v} X
   map {X} {Y} f := fun x : ULift.{v} X => ULift.up (f x.down)
 #align category_theory.ulift_functor CategoryTheory.uliftFunctor
 
-pp_with_univ uliftFunctor
-
 @[simp]
 theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
     uliftFunctor.map f x = ULift.up (f x.down) :=
feat: pp_dot attribute to replace pp_extended_field_notation command (#5632)
Diff
@@ -343,8 +343,8 @@ open CategoryTheory
 
 variable {X Y : Type u}
 
-/-- Any isomorphism between types gives an equivalence.
--/
+/-- Any isomorphism between types gives an equivalence. -/
+@[pp_dot]
 def toEquiv (i : X ≅ Y) : X ≃ Y where
   toFun := i.hom
   invFun := i.inv
@@ -352,8 +352,6 @@ def toEquiv (i : X ≅ Y) : X ≃ Y where
   right_inv y := congr_fun i.inv_hom_id y
 #align category_theory.iso.to_equiv CategoryTheory.Iso.toEquiv
 
-pp_extended_field_notation Iso.toEquiv
-
 @[simp]
 theorem toEquiv_fun (i : X ≅ Y) : (i.toEquiv : X → Y) = i.hom :=
   rfl
feat: use pp_with_univ (#5622)

Certain definitions do nothing except change universes. We might as well have the pretty printer always show us these universes!

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

Diff
@@ -12,6 +12,7 @@ import Mathlib.CategoryTheory.EpiMono
 import Mathlib.CategoryTheory.Functor.FullyFaithful
 import Mathlib.Logic.Equiv.Basic
 import Mathlib.Data.Set.Basic
+import Mathlib.Tactic.PPWithUniv
 
 /-!
 # The category `Type`.
@@ -197,7 +198,7 @@ def uliftTrivial (V : Type u) : ULift.{u} V ≅ V where
 #align category_theory.ulift_trivial CategoryTheory.uliftTrivial
 
 /-- The functor embedding `Type u` into `Type (max u v)`.
-Write this as `uliftFunctor.{5 2}` to get `Type 2 ⥤ Type 5`.
+Write this as `uliftFunctor.{5, 2}` to get `Type 2 ⥤ Type 5`.
 -/
 def uliftFunctor : Type u ⥤ Type max u v
     where
@@ -205,6 +206,8 @@ def uliftFunctor : Type u ⥤ Type max u v
   map {X} {Y} f := fun x : ULift.{v} X => ULift.up (f x.down)
 #align category_theory.ulift_functor CategoryTheory.uliftFunctor
 
+pp_with_univ uliftFunctor
+
 @[simp]
 theorem uliftFunctor_map {X Y : Type u} (f : X ⟶ Y) (x : ULift.{v} X) :
     uliftFunctor.map f x = ULift.up (f x.down) :=
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -244,7 +244,7 @@ theorem mono_iff_injective {X Y : Type u} (f : X ⟶ Y) : Mono f ↔ Function.In
   constructor
   · intro H x x' h
     skip
-    rw [← homOfElement_eq_iff] at h⊢
+    rw [← homOfElement_eq_iff] at h ⊢
     exact (cancel_mono f).mp h
   · exact fun H => ⟨fun g g' h => H.comp_left h⟩
 #align category_theory.mono_iff_injective CategoryTheory.mono_iff_injective
chore: review of automation in category theory (#4793)

Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by aesop_cat, and making more use of available autoparameters.

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

Diff
@@ -194,8 +194,6 @@ and the original type.
 def uliftTrivial (V : Type u) : ULift.{u} V ≅ V where
   hom a := a.1
   inv a := .up a
-  hom_inv_id := by aesop_cat
-  inv_hom_id := by aesop_cat
 #align category_theory.ulift_trivial CategoryTheory.uliftTrivial
 
 /-- The functor embedding `Type u` into `Type (max u v)`.
@@ -225,7 +223,7 @@ instance uliftFunctor_faithful : Faithful uliftFunctor
 /-- The functor embedding `Type u` into `Type u` via `ULift` is isomorphic to the identity functor.
  -/
 def uliftFunctorTrivial : uliftFunctor.{u, u} ≅ 𝟭 _ :=
-  NatIso.ofComponents uliftTrivial (by aesop_cat)
+  NatIso.ofComponents uliftTrivial
 #align category_theory.ulift_functor_trivial CategoryTheory.uliftFunctorTrivial
 
 -- TODO We should connect this to a general story about concrete categories
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -188,7 +188,7 @@ theorem inv_hom_id_app_apply (α : F ≅ G) (X) (x) : α.hom.app X (α.inv.app X
 
 end FunctorToTypes
 
-/-- The isomorphism between a `Type` which has been `ulift`ed to the same universe,
+/-- The isomorphism between a `Type` which has been `ULift`ed to the same universe,
 and the original type.
 -/
 def uliftTrivial (V : Type u) : ULift.{u} V ≅ V where
@@ -222,7 +222,7 @@ instance uliftFunctor_faithful : Faithful uliftFunctor
       congr_arg ULift.down (congr_fun p (ULift.up x) : ULift.up (f x) = ULift.up (g x))
 #align category_theory.ulift_functor_faithful CategoryTheory.uliftFunctor_faithful
 
-/-- The functor embedding `Type u` into `Type u` via `ulift` is isomorphic to the identity functor.
+/-- The functor embedding `Type u` into `Type u` via `ULift` is isomorphic to the identity functor.
  -/
 def uliftFunctorTrivial : uliftFunctor.{u, u} ≅ 𝟭 _ :=
   NatIso.ofComponents uliftTrivial (by aesop_cat)
@@ -230,7 +230,7 @@ def uliftFunctorTrivial : uliftFunctor.{u, u} ≅ 𝟭 _ :=
 
 -- TODO We should connect this to a general story about concrete categories
 -- whose forgetful functor is representable.
-/-- Any term `x` of a type `X` corresponds to a morphism `punit ⟶ X`. -/
+/-- Any term `x` of a type `X` corresponds to a morphism `PUnit ⟶ X`. -/
 def homOfElement {X : Type u} (x : X) : PUnit ⟶ X := fun _ => x
 #align category_theory.hom_of_element CategoryTheory.homOfElement
 
feat: add some pp_extended_field_notations (#3592)

Add some pp_extended_field_notation, for opt-in cases with additional arguments.

Co-authored-by: Kyle Miller <kmill31415@gmail.com>

Diff
@@ -351,6 +351,8 @@ def toEquiv (i : X ≅ Y) : X ≃ Y where
   right_inv y := congr_fun i.inv_hom_id y
 #align category_theory.iso.to_equiv CategoryTheory.Iso.toEquiv
 
+pp_extended_field_notation Iso.toEquiv
+
 @[simp]
 theorem toEquiv_fun (i : X ≅ Y) : (i.toEquiv : X → Y) = i.hom :=
   rfl
feat : add ext lemma for Type u (#3593)

This lemma, which was not needed in mathlib3, simplifies several proofs (back to the state they were in in mathlib3).

Note on what's going on here: Lean 3 ext would fall back on "try all ext lemmas" if it failed, and thus it could see through lots of definitional equalities. Lean 4 ext doesn't do this (because it's inefficient) and so we need to add more ext lemmas in order to recover Lean 3 functionality.

Diff
@@ -55,6 +55,13 @@ theorem types_hom {α β : Type u} : (α ⟶ β) = (α → β) :=
   rfl
 #align category_theory.types_hom CategoryTheory.types_hom
 
+-- porting note: this lemma was not here in Lean 3. Lean 3 `ext` would solve this goal
+-- because of its "if all else fails, apply all `ext` lemmas" policy,
+-- which apparently we want to move away from.
+@[ext] theorem types_ext {α β : Type u} (f g : α ⟶ β) (h : ∀ a : α, f a = g a) : f = g := by
+  funext x
+  exact h x
+
 theorem types_id (X : Type u) : 𝟙 X = id :=
   rfl
 #align category_theory.types_id CategoryTheory.types_id
feat: port CategoryTheory.Limits.Types (#2712)
Diff
@@ -11,6 +11,7 @@ Authors: Stephen Morgan, Scott Morrison, Johannes Hölzl
 import Mathlib.CategoryTheory.EpiMono
 import Mathlib.CategoryTheory.Functor.FullyFaithful
 import Mathlib.Logic.Equiv.Basic
+import Mathlib.Data.Set.Basic
 
 /-!
 # The category `Type`.
@@ -119,6 +120,12 @@ def sections (F : J ⥤ Type w) : Set (∀ j, F.obj j) :=
   { u | ∀ {j j'} (f : j ⟶ j'), F.map f (u j) = u j' }
 #align category_theory.functor.sections CategoryTheory.Functor.sections
 
+-- porting note: added this simp lemma
+@[simp]
+lemma sections_property {F : J ⥤ Type w} (s : (F.sections : Type _))
+  {j j' : J} (f : j ⟶ j') : F.map f (s.val j) = s.val j' :=
+  s.property f
+
 end Functor
 
 namespace FunctorToTypes
fix: category_theory -> CategoryTheory in note (#2357)

This changes the name of a library_note from "category_theory universes" to "CategoryTheory universes" to be more in line with the new naming conventions.

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

Diff
@@ -37,7 +37,7 @@ We prove some basic facts about the category `Type`:
 
 namespace CategoryTheory
 
--- morphism levels before object levels. See note [category_theory universes].
+-- morphism levels before object levels. See note [CategoryTheory universes].
 universe v v' w u u'
 
 /- The `@[to_additive]` attribute is just a hint that expressions involving this instance can
feat: add to_additive linter checking whether additive decl exists (#1881)
  • Force the user to specify whether the additive declaration already exists.
  • Will raise a linter error if the user specified it wrongly
  • Requested on Zulip
Diff
@@ -20,7 +20,7 @@ can be viewed as a `LargeCategory` in our framework.
 
 Lean can not transparently view a function as a morphism in this category, and needs a hint in
 order to be able to type check. We provide the abbreviation `asHom f` to guide type checking,
-as well as a corresponding notation `↾ f`. (Entered as `\upr `.) 
+as well as a corresponding notation `↾ f`. (Entered as `\upr `.)
 
 We provide various simplification lemmas for functors and natural transformations valued in `Type`.
 
@@ -42,7 +42,7 @@ universe v v' w u u'
 
 /- The `@[to_additive]` attribute is just a hint that expressions involving this instance can
   still be additivized. -/
-@[to_additive CategoryTheory.types]
+@[to_additive existing CategoryTheory.types]
 instance types : LargeCategory (Type u)
     where
   Hom a b := a → b
@@ -177,11 +177,11 @@ end FunctorToTypes
 /-- The isomorphism between a `Type` which has been `ulift`ed to the same universe,
 and the original type.
 -/
-def uliftTrivial (V : Type u) : ULift.{u} V ≅ V where 
+def uliftTrivial (V : Type u) : ULift.{u} V ≅ V where
   hom a := a.1
-  inv a := .up a  
-  hom_inv_id := by aesop_cat 
-  inv_hom_id := by aesop_cat 
+  inv a := .up a
+  hom_inv_id := by aesop_cat
+  inv_hom_id := by aesop_cat
 #align category_theory.ulift_trivial CategoryTheory.uliftTrivial
 
 /-- The functor embedding `Type u` into `Type (max u v)`.
@@ -221,7 +221,7 @@ def homOfElement {X : Type u} (x : X) : PUnit ⟶ X := fun _ => x
 #align category_theory.hom_of_element CategoryTheory.homOfElement
 
 theorem homOfElement_eq_iff {X : Type u} (x y : X) : homOfElement x = homOfElement y ↔ x = y :=
-  ⟨fun H => congr_fun H PUnit.unit, by aesop⟩  
+  ⟨fun H => congr_fun H PUnit.unit, by aesop⟩
 #align category_theory.hom_of_element_eq_iff CategoryTheory.homOfElement_eq_iff
 
 /-- A morphism in `Type` is a monomorphism if and only if it is injective.
@@ -267,9 +267,9 @@ allows us to use these functors in category theory. -/
 def ofTypeFunctor (m : Type u → Type v) [_root_.Functor m] [LawfulFunctor m] : Type u ⥤ Type v
     where
   obj := m
-  map f := Functor.map f  
-  map_id := fun α => by funext X; apply id_map  /- Porting note: original proof is via 
-  `fun α => _root_.Functor.map_id` but I cannot get Lean to find this. Reproduced its 
+  map f := Functor.map f
+  map_id := fun α => by funext X; apply id_map  /- Porting note: original proof is via
+  `fun α => _root_.Functor.map_id` but I cannot get Lean to find this. Reproduced its
   original proof -/
   map_comp f g := funext fun a => LawfulFunctor.comp_map f g _
 #align category_theory.of_type_functor CategoryTheory.ofTypeFunctor
feat: port CategoryTheory.Types (#2294)

Dependencies 52

53 files ported (100.0%)
19147 lines ported (100.0%)

All dependencies are ported!