category_theory.idempotents.functor_categoriesMathlib.CategoryTheory.Idempotents.FunctorCategories

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -148,7 +148,7 @@ def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C
 #align category_theory.idempotents.karoubi_functor_category_embedding CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding
 -/
 
-instance : Full (karoubiFunctorCategoryEmbedding J C)
+instance : CategoryTheory.Functor.Full (karoubiFunctorCategoryEmbedding J C)
     where
   preimage P Q f :=
     { f :=
@@ -162,7 +162,7 @@ instance : Full (karoubiFunctorCategoryEmbedding J C)
       comm := by ext j; exact (f.app j).comm }
   witness' P Q f := by ext j; rfl
 
-instance : Faithful (karoubiFunctorCategoryEmbedding J C)
+instance : CategoryTheory.Functor.Faithful (karoubiFunctorCategoryEmbedding J C)
     where map_injective' P Q f f' h := by ext j; exact hom_ext.mp (congr_app h j)
 
 #print CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding /-
Diff
@@ -121,7 +121,7 @@ def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C
       comm := by
         simp only [nat_trans.naturality, assoc]
         have h := congr_app P.idem j
-        rw [nat_trans.comp_app] at h 
+        rw [nat_trans.comp_app] at h
         slice_rhs 1 3 => erw [h, h] }
 #align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj
 -/
@@ -156,8 +156,8 @@ instance : Full (karoubiFunctorCategoryEmbedding J C)
           naturality' := fun j j' φ => by
             rw [← karoubi.comp_p_assoc]
             have h := hom_ext.mp (f.naturality φ)
-            simp only [comp_f] at h 
-            dsimp [karoubi_functor_category_embedding] at h 
+            simp only [comp_f] at h
+            dsimp [karoubi_functor_category_embedding] at h
             erw [← h, assoc, ← P.p.naturality_assoc φ, p_comp (f.app j')] }
       comm := by ext j; exact (f.app j).comm }
   witness' P Q f := by ext j; rfl
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 -/
-import Mathbin.CategoryTheory.Idempotents.Karoubi
+import CategoryTheory.Idempotents.Karoubi
 
 #align_import category_theory.idempotents.functor_categories from "leanprover-community/mathlib"@"19cb3751e5e9b3d97adb51023949c50c13b5fdfd"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.idempotents.functor_categories
-! leanprover-community/mathlib commit 19cb3751e5e9b3d97adb51023949c50c13b5fdfd
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Idempotents.Karoubi
 
+#align_import category_theory.idempotents.functor_categories from "leanprover-community/mathlib"@"19cb3751e5e9b3d97adb51023949c50c13b5fdfd"
+
 /-!
 # Idempotent completeness and functor categories
 
Diff
@@ -40,27 +40,35 @@ namespace Idempotents
 
 variable {J C : Type _} [Category J] [Category C] (P Q : Karoubi (J ⥤ C)) (f : P ⟶ Q) (X : J)
 
+#print CategoryTheory.Idempotents.app_idem /-
 @[simp, reassoc]
 theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
   congr_app P.idem X
 #align category_theory.idempotents.app_idem CategoryTheory.Idempotents.app_idem
+-/
 
 variable {P Q}
 
+#print CategoryTheory.Idempotents.app_p_comp /-
 @[simp, reassoc]
 theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X :=
   congr_app (p_comp f) X
 #align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_comp
+-/
 
+#print CategoryTheory.Idempotents.app_comp_p /-
 @[simp, reassoc]
 theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X :=
   congr_app (comp_p f) X
 #align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_p
+-/
 
+#print CategoryTheory.Idempotents.app_p_comm /-
 @[reassoc]
 theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X :=
   congr_app (p_comm f) X
 #align category_theory.idempotents.app_p_comm CategoryTheory.Idempotents.app_p_comm
+-/
 
 variable (J C)
 
@@ -103,6 +111,7 @@ namespace KaroubiFunctorCategoryEmbedding
 
 variable {J C}
 
+#print CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj /-
 /-- On objects, the functor which sends a formal direct factor `P` of a
 functor `F : J ⥤ C` to the functor `J ⥤ karoubi C` which sends `(j : J)` to
 the corresponding direct factor of `F.obj j`. -/
@@ -118,17 +127,21 @@ def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C
         rw [nat_trans.comp_app] at h 
         slice_rhs 1 3 => erw [h, h] }
 #align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj
+-/
 
+#print CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map /-
 /-- Tautological action on maps of the functor `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`. -/
 @[simps]
 def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q
     where app j := ⟨f.f.app j, congr_app f.comm j⟩
 #align category_theory.idempotents.karoubi_functor_category_embedding.map CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map
+-/
 
 end KaroubiFunctorCategoryEmbedding
 
 variable (J C)
 
+#print CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding /-
 /-- The tautological fully faithful functor `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`. -/
 @[simps]
 def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C
@@ -136,6 +149,7 @@ def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C
   obj := KaroubiFunctorCategoryEmbedding.obj
   map P Q := KaroubiFunctorCategoryEmbedding.map
 #align category_theory.idempotents.karoubi_functor_category_embedding CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding
+-/
 
 instance : Full (karoubiFunctorCategoryEmbedding J C)
     where
@@ -154,6 +168,7 @@ instance : Full (karoubiFunctorCategoryEmbedding J C)
 instance : Faithful (karoubiFunctorCategoryEmbedding J C)
     where map_injective' P Q f f' h := by ext j; exact hom_ext.mp (congr_app h j)
 
+#print CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding /-
 /-- The composition of `(J ⥤ C) ⥤ karoubi (J ⥤ C)` and `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`
 equals the functor `(J ⥤ C) ⥤ (J ⥤ karoubi C)` given by the composition with
 `to_karoubi C : C ⥤ karoubi C`. -/
@@ -175,6 +190,7 @@ theorem toKaroubi_comp_karoubiFunctorCategoryEmbedding :
     · intro j
       rfl
 #align category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding
+-/
 
 end Idempotents
 
Diff
@@ -115,7 +115,7 @@ def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C
       comm := by
         simp only [nat_trans.naturality, assoc]
         have h := congr_app P.idem j
-        rw [nat_trans.comp_app] at h
+        rw [nat_trans.comp_app] at h 
         slice_rhs 1 3 => erw [h, h] }
 #align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj
 
@@ -145,8 +145,8 @@ instance : Full (karoubiFunctorCategoryEmbedding J C)
           naturality' := fun j j' φ => by
             rw [← karoubi.comp_p_assoc]
             have h := hom_ext.mp (f.naturality φ)
-            simp only [comp_f] at h
-            dsimp [karoubi_functor_category_embedding] at h
+            simp only [comp_f] at h 
+            dsimp [karoubi_functor_category_embedding] at h 
             erw [← h, assoc, ← P.p.naturality_assoc φ, p_comp (f.app j')] }
       comm := by ext j; exact (f.app j).comm }
   witness' P Q f := by ext j; rfl
Diff
@@ -40,12 +40,6 @@ namespace Idempotents
 
 variable {J C : Type _} [Category J] [Category C] (P Q : Karoubi (J ⥤ C)) (f : P ⟶ Q) (X : J)
 
-/- warning: category_theory.idempotents.app_idem -> CategoryTheory.Idempotents.app_idem is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X)) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X)
-but is expected to have type
-  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] (P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_idem CategoryTheory.Idempotents.app_idemₓ'. -/
 @[simp, reassoc]
 theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
   congr_app P.idem X
@@ -53,25 +47,16 @@ theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
 
 variable {P Q}
 
-/- warning: category_theory.idempotents.app_p_comp -> CategoryTheory.Idempotents.app_p_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_compₓ'. -/
 @[simp, reassoc]
 theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X :=
   congr_app (p_comp f) X
 #align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_comp
 
-/- warning: category_theory.idempotents.app_comp_p -> CategoryTheory.Idempotents.app_comp_p is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_pₓ'. -/
 @[simp, reassoc]
 theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X :=
   congr_app (comp_p f) X
 #align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_p
 
-/- warning: category_theory.idempotents.app_p_comm -> CategoryTheory.Idempotents.app_p_comm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comm CategoryTheory.Idempotents.app_p_commₓ'. -/
 @[reassoc]
 theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X :=
   congr_app (p_comm f) X
@@ -118,12 +103,6 @@ namespace KaroubiFunctorCategoryEmbedding
 
 variable {J C}
 
-/- warning: category_theory.idempotents.karoubi_functor_category_embedding.obj -> CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) -> (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))
-but is expected to have type
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) -> (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.objₓ'. -/
 /-- On objects, the functor which sends a formal direct factor `P` of a
 functor `F : J ⥤ C` to the functor `J ⥤ karoubi C` which sends `(j : J)` to
 the corresponding direct factor of `F.obj j`. -/
@@ -140,12 +119,6 @@ def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C
         slice_rhs 1 3 => erw [h, h] }
 #align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj
 
-/- warning: category_theory.idempotents.karoubi_functor_category_embedding.map -> CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)}, (Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) -> (Quiver.Hom.{succ (max u1 u4), max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)))) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 P) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 Q))
-but is expected to have type
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)}, (Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u2) u3) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u2) u3) u4, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) -> (Quiver.Hom.{max (succ u1) (succ u4), max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)))) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 P) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 Q))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi_functor_category_embedding.map CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.mapₓ'. -/
 /-- Tautological action on maps of the functor `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`. -/
 @[simps]
 def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q
@@ -156,12 +129,6 @@ end KaroubiFunctorCategoryEmbedding
 
 variable (J C)
 
-/- warning: category_theory.idempotents.karoubi_functor_category_embedding -> CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding is a dubious translation:
-lean 3 declaration is
-  forall (J : Type.{u1}) (C : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], CategoryTheory.Functor.{max u1 u4, max u1 u4, max (max u3 u4 u1 u2) u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))
-but is expected to have type
-  forall (J : Type.{u1}) (C : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], CategoryTheory.Functor.{max u1 u4, max u1 u4, max (max u1 u4) (max (max u2 u1) u4) u3, max (max (max (max u4 u2) u1) u4) u3} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u2) u3) u4, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi_functor_category_embedding CategoryTheory.Idempotents.karoubiFunctorCategoryEmbeddingₓ'. -/
 /-- The tautological fully faithful functor `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`. -/
 @[simps]
 def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C
@@ -187,9 +154,6 @@ instance : Full (karoubiFunctorCategoryEmbedding J C)
 instance : Faithful (karoubiFunctorCategoryEmbedding J C)
     where map_injective' P Q f f' h := by ext j; exact hom_ext.mp (congr_app h j)
 
-/- warning: category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding -> CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbeddingₓ'. -/
 /-- The composition of `(J ⥤ C) ⥤ karoubi (J ⥤ C)` and `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`
 equals the functor `(J ⥤ C) ⥤ (J ⥤ karoubi C)` given by the composition with
 `to_karoubi C : C ⥤ karoubi C`. -/
Diff
@@ -93,9 +93,7 @@ instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
       map := fun j j' φ =>
         equalizer.lift (limits.equalizer.ι (𝟙 _) (p.app j) ≫ F.map φ)
           (by rw [comp_id, assoc, p.naturality φ, ← assoc, ← limits.equalizer.condition, comp_id])
-      map_id' := fun j => by
-        ext
-        simp only [comp_id, Functor.map_id, equalizer.lift_ι, id_comp]
+      map_id' := fun j => by ext; simp only [comp_id, Functor.map_id, equalizer.lift_ι, id_comp]
       map_comp' := fun j j' j'' φ φ' => by
         ext
         simp only [assoc, functor.map_comp, equalizer.lift_ι, equalizer.lift_ι_assoc] }
@@ -103,11 +101,7 @@ instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
     { app := fun j => equalizer.ι _ _
       naturality' := fun j j' φ => by rw [equalizer.lift_ι] }
   let e : F ⟶ Y :=
-    { app := fun j =>
-        equalizer.lift (p.app j)
-          (by
-            rw [comp_id]
-            exact (congr_app hp j).symm)
+    { app := fun j => equalizer.lift (p.app j) (by rw [comp_id]; exact (congr_app hp j).symm)
       naturality' := fun j j' φ => by
         ext
         simp only [assoc, equalizer.lift_ι, nat_trans.naturality, equalizer.lift_ι_assoc] }
@@ -187,17 +181,11 @@ instance : Full (karoubiFunctorCategoryEmbedding J C)
             simp only [comp_f] at h
             dsimp [karoubi_functor_category_embedding] at h
             erw [← h, assoc, ← P.p.naturality_assoc φ, p_comp (f.app j')] }
-      comm := by
-        ext j
-        exact (f.app j).comm }
-  witness' P Q f := by
-    ext j
-    rfl
+      comm := by ext j; exact (f.app j).comm }
+  witness' P Q f := by ext j; rfl
 
 instance : Faithful (karoubiFunctorCategoryEmbedding J C)
-    where map_injective' P Q f f' h := by
-    ext j
-    exact hom_ext.mp (congr_app h j)
+    where map_injective' P Q f f' h := by ext j; exact hom_ext.mp (congr_app h j)
 
 /- warning: category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding -> CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding is a dubious translation:
 <too large>
Diff
@@ -54,10 +54,7 @@ theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
 variable {P Q}
 
 /- warning: category_theory.idempotents.app_p_comp -> CategoryTheory.Idempotents.app_p_comp is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} (f : Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)
-but is expected to have type
-  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_compₓ'. -/
 @[simp, reassoc]
 theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X :=
@@ -65,10 +62,7 @@ theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X :=
 #align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_comp
 
 /- warning: category_theory.idempotents.app_comp_p -> CategoryTheory.Idempotents.app_comp_p is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} (f : Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)
-but is expected to have type
-  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_pₓ'. -/
 @[simp, reassoc]
 theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X :=
@@ -76,10 +70,7 @@ theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X :=
 #align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_p
 
 /- warning: category_theory.idempotents.app_p_comm -> CategoryTheory.Idempotents.app_p_comm is a dubious translation:
-lean 3 declaration is
-  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} (f : Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X))
-but is expected to have type
-  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comm CategoryTheory.Idempotents.app_p_commₓ'. -/
 @[reassoc]
 theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X :=
@@ -209,10 +200,7 @@ instance : Faithful (karoubiFunctorCategoryEmbedding J C)
     exact hom_ext.mp (congr_app h j)
 
 /- warning: category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding -> CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding is a dubious translation:
-lean 3 declaration is
-  forall (J : Type.{u1}) (C : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], Eq.{succ (max (max u1 u4) (max u3 u4 u1 u2) u3 u4 u1 u2 u4)} (CategoryTheory.Functor.{max u1 u4, max u1 u4, max u3 u4 u1 u2, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))) (CategoryTheory.Functor.comp.{max u1 u4, max u1 u4, max u1 u4, max u3 u4 u1 u2, max (max u3 u4 u1 u2) u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Idempotents.toKaroubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding.{u1, u2, u3, u4} J C _inst_1 _inst_2)) (CategoryTheory.Functor.obj.{max u2 u4, max (max u3 u4 u1 u2) u1 u4, max u2 u4, max (max u1 u4) (max u3 u4 u1 u2) u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u4, u4, u2, max u2 u4} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u4, u4, u2, max u2 u4} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.{max u1 u4, max u1 u4, max u3 u4 u1 u2, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))) (CategoryTheory.Functor.category.{max u1 u4, max u1 u4, max u3 u4 u1 u2, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))) (CategoryTheory.whiskeringRight.{u1, u3, u2, u4, max u2 u4, u4} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Idempotents.toKaroubi.{u2, u4} C _inst_2))
-but is expected to have type
-  forall (J : Type.{u4}) (C : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u2, u4} J] [_inst_2 : CategoryTheory.Category.{u1, u3} C], Eq.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1)} (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u1 u3} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Functor.comp.{max u4 u1, max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max u4 u1) (max (max u4 u3) u2) u1, max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Idempotents.Karoubi.{max (max (max u4 u3) u2) u1, max u4 u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u4 u3) u2) u1, max u4 u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u2, u1, u4, max u1 u3} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Idempotents.toKaroubi.{max (max (max u4 u3) u2) u1, max u4 u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding.{u4, u3, u2, u1} J C _inst_1 _inst_2)) (Prefunctor.obj.{max (succ u1) (succ u3), max (max (max (succ u4) (succ u2)) (succ u1)) (succ u3), max u3 u1, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3, max u3 u1} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u3, max u3 u1} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)))) (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u4 u2) u1) u3, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Category.toCategoryStruct.{max (max (max u4 u2) u1) u3, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Functor.category.{max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max (max u4 u3 u1) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3, max (max (max u4 u2) u1) u3, max u3 u1, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Functor.category.{max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max (max u4 u3 u1) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.whiskeringRight.{u4, u2, u3, u1, max u3 u1, u1} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Idempotents.toKaroubi.{u3, u1} C _inst_2))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbeddingₓ'. -/
 /-- The composition of `(J ⥤ C) ⥤ karoubi (J ⥤ C)` and `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`
 equals the functor `(J ⥤ C) ⥤ (J ⥤ karoubi C)` given by the composition with
Diff
@@ -46,7 +46,7 @@ lean 3 declaration is
 but is expected to have type
   forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] (P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X)
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_idem CategoryTheory.Idempotents.app_idemₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
   congr_app P.idem X
 #align category_theory.idempotents.app_idem CategoryTheory.Idempotents.app_idem
@@ -59,7 +59,7 @@ lean 3 declaration is
 but is expected to have type
   forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_compₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X :=
   congr_app (p_comp f) X
 #align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_comp
@@ -70,7 +70,7 @@ lean 3 declaration is
 but is expected to have type
   forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_pₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X :=
   congr_app (comp_p f) X
 #align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_p
@@ -81,7 +81,7 @@ lean 3 declaration is
 but is expected to have type
   forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) X))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comm CategoryTheory.Idempotents.app_p_commₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X :=
   congr_app (p_comm f) X
 #align category_theory.idempotents.app_p_comm CategoryTheory.Idempotents.app_p_comm
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 
 ! This file was ported from Lean 3 source module category_theory.idempotents.functor_categories
-! leanprover-community/mathlib commit 31019c2504b17f85af7e0577585fad996935a317
+! leanprover-community/mathlib commit 19cb3751e5e9b3d97adb51023949c50c13b5fdfd
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.CategoryTheory.Idempotents.Karoubi
 /-!
 # Idempotent completeness and functor categories
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we define an instance `functor_category_is_idempotent_complete` expressing
 that a functor category `J ⥤ C` is idempotent complete when the target category `C` is.
 
Diff
@@ -37,6 +37,12 @@ namespace Idempotents
 
 variable {J C : Type _} [Category J] [Category C] (P Q : Karoubi (J ⥤ C)) (f : P ⟶ Q) (X : J)
 
+/- warning: category_theory.idempotents.app_idem -> CategoryTheory.Idempotents.app_idem is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X)) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X)
+but is expected to have type
+  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] (P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_idem CategoryTheory.Idempotents.app_idemₓ'. -/
 @[simp, reassoc.1]
 theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
   congr_app P.idem X
@@ -44,16 +50,34 @@ theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
 
 variable {P Q}
 
+/- warning: category_theory.idempotents.app_p_comp -> CategoryTheory.Idempotents.app_p_comp is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} (f : Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)
+but is expected to have type
+  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_compₓ'. -/
 @[simp, reassoc.1]
 theorem app_p_comp : P.p.app X ≫ f.f.app X = f.f.app X :=
   congr_app (p_comp f) X
 #align category_theory.idempotents.app_p_comp CategoryTheory.Idempotents.app_p_comp
 
+/- warning: category_theory.idempotents.app_comp_p -> CategoryTheory.Idempotents.app_comp_p is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} (f : Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)
+but is expected to have type
+  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_pₓ'. -/
 @[simp, reassoc.1]
 theorem app_comp_p : f.f.app X ≫ Q.p.app X = f.f.app X :=
   congr_app (comp_p f) X
 #align category_theory.idempotents.app_comp_p CategoryTheory.Idempotents.app_comp_p
 
+/- warning: category_theory.idempotents.app_p_comm -> CategoryTheory.Idempotents.app_p_comm is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} (f : Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.CategoryStruct.comp.{u4, u2} C (CategoryTheory.Category.toCategoryStruct.{u4, u2} C _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u3, u4, u1, u2} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.x.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) Q) X))
+but is expected to have type
+  forall {J : Type.{u1}} {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u3} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)} (f : Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u3) u2) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u3 u1) u4) u2, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2)))) P Q) (X : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X)) (CategoryTheory.CategoryStruct.comp.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (Prefunctor.obj.{succ u2, succ u4, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} J (CategoryTheory.Category.toCategoryStruct.{u2, u1} J _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} C (CategoryTheory.Category.toCategoryStruct.{u4, u3} C _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q)) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) P Q f) X) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.X.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) (CategoryTheory.Idempotents.Karoubi.p.{max (max (max u1 u3) u2) u4, max u1 u4} (CategoryTheory.Functor.{u2, u4, u1, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} J _inst_1 C _inst_2) Q) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.app_p_comm CategoryTheory.Idempotents.app_p_commₓ'. -/
 @[reassoc.1]
 theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X :=
   congr_app (p_comm f) X
@@ -61,6 +85,7 @@ theorem app_p_comm : P.p.app X ≫ f.f.app X = f.f.app X ≫ Q.p.app X :=
 
 variable (J C)
 
+#print CategoryTheory.Idempotents.functor_category_isIdempotentComplete /-
 instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
     IsIdempotentComplete (J ⥤ C) := by
   refine' ⟨_⟩
@@ -99,11 +124,18 @@ instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
       equalizer.condition, comp_id]
   · simp only [nat_trans.comp_app, equalizer.lift_ι]
 #align category_theory.idempotents.functor_category_is_idempotent_complete CategoryTheory.Idempotents.functor_category_isIdempotentComplete
+-/
 
 namespace KaroubiFunctorCategoryEmbedding
 
 variable {J C}
 
+/- warning: category_theory.idempotents.karoubi_functor_category_embedding.obj -> CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) -> (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))
+but is expected to have type
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) -> (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.objₓ'. -/
 /-- On objects, the functor which sends a formal direct factor `P` of a
 functor `F : J ⥤ C` to the functor `J ⥤ karoubi C` which sends `(j : J)` to
 the corresponding direct factor of `F.obj j`. -/
@@ -120,6 +152,12 @@ def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C
         slice_rhs 1 3 => erw [h, h] }
 #align category_theory.idempotents.karoubi_functor_category_embedding.obj CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj
 
+/- warning: category_theory.idempotents.karoubi_functor_category_embedding.map -> CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map is a dubious translation:
+lean 3 declaration is
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)}, (Quiver.Hom.{succ (max u1 u4), max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u3 u4 u1 u2) u1 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) -> (Quiver.Hom.{succ (max u1 u4), max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)))) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 P) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 Q))
+but is expected to have type
+  forall {J : Type.{u1}} {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)} {Q : CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)}, (Quiver.Hom.{max (succ u1) (succ u4), max (max (max u1 u2) u3) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u2) u3) u4, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)))) P Q) -> (Quiver.Hom.{max (succ u1) (succ u4), max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)))) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 P) (CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.obj.{u1, u2, u3, u4} J C _inst_1 _inst_2 Q))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi_functor_category_embedding.map CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.mapₓ'. -/
 /-- Tautological action on maps of the functor `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`. -/
 @[simps]
 def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q
@@ -130,6 +168,12 @@ end KaroubiFunctorCategoryEmbedding
 
 variable (J C)
 
+/- warning: category_theory.idempotents.karoubi_functor_category_embedding -> CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding is a dubious translation:
+lean 3 declaration is
+  forall (J : Type.{u1}) (C : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], CategoryTheory.Functor.{max u1 u4, max u1 u4, max (max u3 u4 u1 u2) u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))
+but is expected to have type
+  forall (J : Type.{u1}) (C : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], CategoryTheory.Functor.{max u1 u4, max u1 u4, max (max u1 u4) (max (max u2 u1) u4) u3, max (max (max (max u4 u2) u1) u4) u3} (CategoryTheory.Idempotents.Karoubi.{max (max (max u2 u1) u4) u3, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u1 u2) u3) u4, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u3, u4, u1, max u4 u2} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u4} C _inst_2))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi_functor_category_embedding CategoryTheory.Idempotents.karoubiFunctorCategoryEmbeddingₓ'. -/
 /-- The tautological fully faithful functor `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`. -/
 @[simps]
 def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C
@@ -161,6 +205,12 @@ instance : Faithful (karoubiFunctorCategoryEmbedding J C)
     ext j
     exact hom_ext.mp (congr_app h j)
 
+/- warning: category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding -> CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbedding is a dubious translation:
+lean 3 declaration is
+  forall (J : Type.{u1}) (C : Type.{u2}) [_inst_1 : CategoryTheory.Category.{u3, u1} J] [_inst_2 : CategoryTheory.Category.{u4, u2} C], Eq.{succ (max (max u1 u4) (max u3 u4 u1 u2) u3 u4 u1 u2 u4)} (CategoryTheory.Functor.{max u1 u4, max u1 u4, max u3 u4 u1 u2, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))) (CategoryTheory.Functor.comp.{max u1 u4, max u1 u4, max u1 u4, max u3 u4 u1 u2, max (max u3 u4 u1 u2) u1 u4, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Idempotents.Karoubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Idempotents.toKaroubi.{max u3 u4 u1 u2, max u1 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding.{u1, u2, u3, u4} J C _inst_1 _inst_2)) (CategoryTheory.Functor.obj.{max u2 u4, max (max u3 u4 u1 u2) u1 u4, max u2 u4, max (max u1 u4) (max u3 u4 u1 u2) u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u4, u4, u2, max u2 u4} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u4, u4, u2, max u2 u4} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.{max u1 u4, max u1 u4, max u3 u4 u1 u2, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))) (CategoryTheory.Functor.category.{max u1 u4, max u1 u4, max u3 u4 u1 u2, max u3 u4 u1 u2 u4} (CategoryTheory.Functor.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Functor.category.{u3, u4, u1, max u2 u4} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2))) (CategoryTheory.whiskeringRight.{u1, u3, u2, u4, max u2 u4, u4} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u2, u4} C _inst_2) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u2, u4} C _inst_2)) (CategoryTheory.Idempotents.toKaroubi.{u2, u4} C _inst_2))
+but is expected to have type
+  forall (J : Type.{u4}) (C : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u2, u4} J] [_inst_2 : CategoryTheory.Category.{u1, u3} C], Eq.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1)} (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u1 u3} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Functor.comp.{max u4 u1, max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max u4 u1) (max (max u4 u3) u2) u1, max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Idempotents.Karoubi.{max (max (max u4 u3) u2) u1, max u4 u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{max (max (max u4 u3) u2) u1, max u4 u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2)) (CategoryTheory.Functor.{u2, u1, u4, max u1 u3} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Idempotents.toKaroubi.{max (max (max u4 u3) u2) u1, max u4 u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2)) (CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding.{u4, u3, u2, u1} J C _inst_1 _inst_2)) (Prefunctor.obj.{max (succ u1) (succ u3), max (max (max (succ u4) (succ u2)) (succ u1)) (succ u3), max u3 u1, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3, max u3 u1} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u1 u3, max u3 u1} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)))) (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u4 u2) u1) u3, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Category.toCategoryStruct.{max (max (max u4 u2) u1) u3, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Functor.category.{max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max (max u4 u3 u1) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3, max (max (max u4 u2) u1) u3, max u3 u1, max (max (max (max (max u4 u2) u1) u3 u1) u1) u3} (CategoryTheory.Functor.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u1, u1, u3, max u3 u1} C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.{max u4 u1, max u4 u1, max (max (max u3 u4) u1) u2, max (max (max (max u3 u1) u4) u1) u2} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Functor.category.{max u4 u1, max u4 u1, max (max (max u4 u3) u2) u1, max (max (max u4 u3 u1) u2) u1} (CategoryTheory.Functor.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.category.{u2, u1, u4, u3} J _inst_1 C _inst_2) (CategoryTheory.Functor.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2)) (CategoryTheory.Functor.category.{u2, u1, u4, max u3 u1} J _inst_1 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.whiskeringRight.{u4, u2, u3, u1, max u3 u1, u1} J _inst_1 C _inst_2 (CategoryTheory.Idempotents.Karoubi.{u3, u1} C _inst_2) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u3, u1} C _inst_2))) (CategoryTheory.Idempotents.toKaroubi.{u3, u1} C _inst_2))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_comp_karoubi_functor_category_embedding CategoryTheory.Idempotents.toKaroubi_comp_karoubiFunctorCategoryEmbeddingₓ'. -/
 /-- The composition of `(J ⥤ C) ⥤ karoubi (J ⥤ C)` and `karoubi (J ⥤ C) ⥤ (J ⥤ karoubi C)`
 equals the functor `(J ⥤ C) ⥤ (J ⥤ karoubi C)` given by the composition with
 `to_karoubi C : C ⥤ karoubi C`. -/
Diff
@@ -110,9 +110,9 @@ the corresponding direct factor of `F.obj j`. -/
 @[simps]
 def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C
     where
-  obj j := ⟨P.x.obj j, P.p.app j, congr_app P.idem j⟩
+  obj j := ⟨P.pt.obj j, P.p.app j, congr_app P.idem j⟩
   map j j' φ :=
-    { f := P.p.app j ≫ P.x.map φ
+    { f := P.p.app j ≫ P.pt.map φ
       comm := by
         simp only [nat_trans.naturality, assoc]
         have h := congr_app P.idem j

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
@@ -119,8 +119,8 @@ def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C wher
 #align category_theory.idempotents.karoubi_functor_category_embedding CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding
 
 instance : (karoubiFunctorCategoryEmbedding J C).Full where
-  preimage {P Q} f :=
-    { f :=
+  map_surjective {P Q} f :=
+   ⟨{ f :=
         { app := fun j => (f.app j).f
           naturality := fun j j' φ => by
             rw [← Karoubi.comp_p_assoc]
@@ -130,8 +130,7 @@ instance : (karoubiFunctorCategoryEmbedding J C).Full where
             erw [← h, assoc, ← P.p.naturality_assoc φ, p_comp (f.app j')] }
       comm := by
         ext j
-        exact (f.app j).comm }
-  witness f := rfl
+        exact (f.app j).comm }, rfl⟩
 
 instance : (karoubiFunctorCategoryEmbedding J C).Faithful where
   map_injective h := by
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
@@ -118,7 +118,7 @@ def karoubiFunctorCategoryEmbedding : Karoubi (J ⥤ C) ⥤ J ⥤ Karoubi C wher
   map := KaroubiFunctorCategoryEmbedding.map
 #align category_theory.idempotents.karoubi_functor_category_embedding CategoryTheory.Idempotents.karoubiFunctorCategoryEmbedding
 
-instance : Full (karoubiFunctorCategoryEmbedding J C) where
+instance : (karoubiFunctorCategoryEmbedding J C).Full where
   preimage {P Q} f :=
     { f :=
         { app := fun j => (f.app j).f
@@ -133,7 +133,7 @@ instance : Full (karoubiFunctorCategoryEmbedding J C) where
         exact (f.app j).comm }
   witness f := rfl
 
-instance : Faithful (karoubiFunctorCategoryEmbedding J C) where
+instance : (karoubiFunctorCategoryEmbedding J C).Faithful where
   map_injective h := by
     ext j
     exact hom_ext_iff.mp (congr_app h j)
chore: bump toolchain to v4.3.0-rc1 (#8051)

This incorporates changes from

  • #7845
  • #7847
  • #7853
  • #7872 (was never actually made to work, but the diffs in nightly-testing are unexciting: we need to fully qualify a few names)

They can all be closed when this is merged.

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

Diff
@@ -80,7 +80,6 @@ instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
   use Y, i, e
   constructor
   · ext j
-    apply equalizer.hom_ext
     dsimp
     rw [assoc, equalizer.lift_ι, ← equalizer.condition, id_comp, comp_id]
   · ext j
style: fix wrapping of where (#7149)
Diff
@@ -106,8 +106,8 @@ def obj (P : Karoubi (J ⥤ C)) : J ⥤ Karoubi C where
 
 /-- Tautological action on maps of the functor `Karoubi (J ⥤ C) ⥤ (J ⥤ Karoubi C)`. -/
 @[simps]
-def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q
-    where app j := ⟨f.f.app j, congr_app f.comm j⟩
+def map {P Q : Karoubi (J ⥤ C)} (f : P ⟶ Q) : obj P ⟶ obj Q where
+  app j := ⟨f.f.app j, congr_app f.comm j⟩
 #align category_theory.idempotents.karoubi_functor_category_embedding.map CategoryTheory.Idempotents.KaroubiFunctorCategoryEmbedding.map
 
 end KaroubiFunctorCategoryEmbedding
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -32,7 +32,7 @@ namespace CategoryTheory
 
 namespace Idempotents
 
-variable {J C : Type _} [Category J] [Category C] (P Q : Karoubi (J ⥤ C)) (f : P ⟶ Q) (X : J)
+variable {J C : Type*} [Category J] [Category C] (P Q : Karoubi (J ⥤ C)) (f : P ⟶ Q) (X : J)
 
 @[reassoc (attr := simp)]
 theorem app_idem : P.p.app X ≫ P.p.app X = P.p.app X :=
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.idempotents.functor_categories
-! leanprover-community/mathlib commit 31019c2504b17f85af7e0577585fad996935a317
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Idempotents.Karoubi
 
+#align_import category_theory.idempotents.functor_categories from "leanprover-community/mathlib"@"31019c2504b17f85af7e0577585fad996935a317"
+
 /-!
 # Idempotent completeness and functor categories
 
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -82,11 +82,11 @@ instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
       naturality := fun j j' φ => equalizer.hom_ext (by simp) }
   use Y, i, e
   constructor
-  . ext j
+  · ext j
     apply equalizer.hom_ext
     dsimp
     rw [assoc, equalizer.lift_ι, ← equalizer.condition, id_comp, comp_id]
-  . ext j
+  · ext j
     simp
 namespace KaroubiFunctorCategoryEmbedding
 
feat: more consistent use of ext, and updating porting notes. (#5242)

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

Diff
@@ -72,9 +72,7 @@ instance functor_category_isIdempotentComplete [IsIdempotentComplete C] :
     { obj := fun j => Limits.equalizer (𝟙 _) (p.app j)
       map := fun {j j'} φ =>
         equalizer.lift (Limits.equalizer.ι (𝟙 _) (p.app j) ≫ F.map φ)
-          (by rw [comp_id, assoc, p.naturality φ, ← assoc, ← Limits.equalizer.condition, comp_id])
-      map_id := fun _ => equalizer.hom_ext (by simp)
-      map_comp := fun _ _ => equalizer.hom_ext (by simp) }
+          (by rw [comp_id, assoc, p.naturality φ, ← assoc, ← Limits.equalizer.condition, comp_id]) }
   let i : Y ⟶ F :=
     { app := fun j => equalizer.ι _ _
       naturality := fun _ _ _ => by rw [equalizer.lift_ι] }
feat: port CategoryTheory.Idempotents.FunctorCategories (#3301)

Co-authored-by: Chris Hughes <chrishughes24@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Dependencies 3 + 316

317 files ported (99.1%)
125913 lines ported (99.2%)
Show graph

The unported dependencies are