category_theory.idempotents.karoubiMathlib.CategoryTheory.Idempotents.Karoubi

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -185,9 +185,9 @@ def toKaroubi : C ⥤ Karoubi C
 #align category_theory.idempotents.to_karoubi CategoryTheory.Idempotents.toKaroubi
 -/
 
-instance : Full (toKaroubi C) where preimage X Y f := f.f
+instance : CategoryTheory.Functor.Full (toKaroubi C) where preimage X Y f := f.f
 
-instance : Faithful (toKaroubi C) where
+instance : CategoryTheory.Functor.Faithful (toKaroubi C) where
 
 variable {C}
 
@@ -256,7 +256,7 @@ instance : IsIdempotentComplete (Karoubi C) :=
   use⟨p.f, by rw [hp', p_comp p]⟩
   constructor <;> simpa only [hom_ext] using hp'
 
-instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
+instance [IsIdempotentComplete C] : CategoryTheory.Functor.EssSurj (toKaroubi C) :=
   ⟨fun P => by
     have h : is_idempotent_complete C := inferInstance
     rcases is_idempotent_complete.idempotents_split P.X P.p P.idem with ⟨Y, i, e, ⟨h₁, h₂⟩⟩
@@ -268,8 +268,9 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
 
 #print CategoryTheory.Idempotents.toKaroubiIsEquivalence /-
 /-- If `C` is idempotent complete, the functor `to_karoubi : C ⥤ karoubi C` is an equivalence. -/
-def toKaroubiIsEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
-  Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
+def toKaroubiIsEquivalence [IsIdempotentComplete C] :
+    CategoryTheory.Functor.IsEquivalence (toKaroubi C) :=
+  CategoryTheory.Functor.IsEquivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
 #align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubiIsEquivalence
 -/
 
Diff
@@ -70,7 +70,7 @@ theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = e
     P = Q := by
   cases P
   cases Q
-  dsimp at h_X h_p 
+  dsimp at h_X h_p
   subst h_X
   simpa only [true_and_iff, eq_self_iff_true, id_comp, eq_to_hom_refl, heq_iff_eq, comp_id] using
     h_p
@@ -250,7 +250,7 @@ instance : IsIdempotentComplete (Karoubi C) :=
   refine' ⟨_⟩
   intro P p hp
   have hp' := hom_ext.mp hp
-  simp only [comp_f] at hp' 
+  simp only [comp_f] at hp'
   use⟨P.X, p.f, hp'⟩
   use⟨p.f, by rw [comp_p p, hp']⟩
   use⟨p.f, by rw [hp', p_comp p]⟩
Diff
@@ -230,7 +230,7 @@ def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.p
 @[simp]
 theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type _} (s : Finset α) (f : α → (P ⟶ Q)) :
     (∑ x in s, f x).f = ∑ x in s, (f x).f :=
-  AddMonoidHom.map_sum (inclusionHom P Q) f s
+  map_sum (inclusionHom P Q) f s
 #align category_theory.idempotents.karoubi.sum_hom CategoryTheory.Idempotents.Karoubi.sum_hom
 -/
 
Diff
@@ -3,9 +3,9 @@ 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.Basic
-import Mathbin.CategoryTheory.Preadditive.AdditiveFunctor
-import Mathbin.CategoryTheory.Equivalence
+import CategoryTheory.Idempotents.Basic
+import CategoryTheory.Preadditive.AdditiveFunctor
+import CategoryTheory.Equivalence
 
 #align_import category_theory.idempotents.karoubi from "leanprover-community/mathlib"@"19cb3751e5e9b3d97adb51023949c50c13b5fdfd"
 
Diff
@@ -266,26 +266,26 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
         { Hom := ⟨i, by erw [id_comp, ← h₂, ← assoc, h₁, id_comp]⟩
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
-#print CategoryTheory.Idempotents.toKaroubi_isEquivalence /-
+#print CategoryTheory.Idempotents.toKaroubiIsEquivalence /-
 /-- If `C` is idempotent complete, the functor `to_karoubi : C ⥤ karoubi C` is an equivalence. -/
-def toKaroubi_isEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
+def toKaroubiIsEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
-#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalence
+#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubiIsEquivalence
 -/
 
-#print CategoryTheory.Idempotents.toKaroubi_equivalence /-
+#print CategoryTheory.Idempotents.toKaroubiEquivalence /-
 /-- The equivalence `C ≅ karoubi C` when `C` is idempotent complete. -/
-def toKaroubi_equivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
+def toKaroubiEquivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
   haveI := to_karoubi_is_equivalence C
   functor.as_equivalence (to_karoubi C)
-#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalence
+#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubiEquivalence
 -/
 
-#print CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive /-
-instance toKaroubi_equivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
-    (toKaroubi_equivalence C).Functor.Additive :=
+#print CategoryTheory.Idempotents.toKaroubiEquivalence_functor_additive /-
+instance toKaroubiEquivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
+    (toKaroubiEquivalence C).Functor.Additive :=
   (inferInstance : (toKaroubi C).Additive)
-#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive
+#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubiEquivalence_functor_additive
 -/
 
 namespace Karoubi
Diff
@@ -251,9 +251,9 @@ instance : IsIdempotentComplete (Karoubi C) :=
   intro P p hp
   have hp' := hom_ext.mp hp
   simp only [comp_f] at hp' 
-  use ⟨P.X, p.f, hp'⟩
-  use ⟨p.f, by rw [comp_p p, hp']⟩
-  use ⟨p.f, by rw [hp', p_comp p]⟩
+  use⟨P.X, p.f, hp'⟩
+  use⟨p.f, by rw [comp_p p, hp']⟩
+  use⟨p.f, by rw [hp', p_comp p]⟩
   constructor <;> simpa only [hom_ext] using hp'
 
 instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
Diff
@@ -2,16 +2,13 @@
 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.karoubi
-! 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.Basic
 import Mathbin.CategoryTheory.Preadditive.AdditiveFunctor
 import Mathbin.CategoryTheory.Equivalence
 
+#align_import category_theory.idempotents.karoubi from "leanprover-community/mathlib"@"19cb3751e5e9b3d97adb51023949c50c13b5fdfd"
+
 /-!
 # The Karoubi envelope of a category
 
Diff
@@ -67,6 +67,7 @@ variable {C}
 
 attribute [simp, reassoc] idem
 
+#print CategoryTheory.Idempotents.Karoubi.ext /-
 @[ext]
 theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = eqToHom h_X ≫ Q.p) :
     P = Q := by
@@ -77,6 +78,7 @@ theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = e
   simpa only [true_and_iff, eq_self_iff_true, id_comp, eq_to_hom_refl, heq_iff_eq, comp_id] using
     h_p
 #align category_theory.idempotents.karoubi.ext CategoryTheory.Idempotents.Karoubi.ext
+-/
 
 #print CategoryTheory.Idempotents.Karoubi.Hom /-
 /-- A morphism `P ⟶ Q` in the category `karoubi C` is a morphism in the underlying category
@@ -93,6 +95,7 @@ structure Hom (P Q : Karoubi C) where
 instance [Preadditive C] (P Q : Karoubi C) : Inhabited (Hom P Q) :=
   ⟨⟨0, by rw [zero_comp, comp_zero]⟩⟩
 
+#print CategoryTheory.Idempotents.Karoubi.hom_ext_iff /-
 @[simp]
 theorem hom_ext_iff {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
   by
@@ -100,22 +103,31 @@ theorem hom_ext_iff {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
   · intro h; rw [h]
   · ext
 #align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iff
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.p_comp /-
 @[simp, reassoc]
 theorem p_comp {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f := by rw [f.comm, ← assoc, P.idem]
 #align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_comp
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.comp_p /-
 @[simp, reassoc]
 theorem comp_p {P Q : Karoubi C} (f : Hom P Q) : f.f ≫ Q.p = f.f := by
   rw [f.comm, assoc, assoc, Q.idem]
 #align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_p
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.p_comm /-
 theorem p_comm {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f ≫ Q.p := by rw [p_comp, comp_p]
 #align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_comm
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.comp_proof /-
 theorem comp_proof {P Q R : Karoubi C} (g : Hom Q R) (f : Hom P Q) :
     f.f ≫ g.f = P.p ≫ (f.f ≫ g.f) ≫ R.p := by rw [assoc, comp_p, ← assoc, p_comp]
 #align category_theory.idempotents.karoubi.comp_proof CategoryTheory.Idempotents.Karoubi.comp_proof
+-/
 
 /-- The category structure on the karoubi envelope of a category. -/
 instance : Category (Karoubi C) where
@@ -123,23 +135,31 @@ instance : Category (Karoubi C) where
   id P := ⟨P.p, by repeat' rw [P.idem]⟩
   comp P Q R f g := ⟨f.f ≫ g.f, Karoubi.comp_proof g f⟩
 
+#print CategoryTheory.Idempotents.Karoubi.comp_f /-
 @[simp]
 theorem comp_f {P Q R : Karoubi C} (f : P ⟶ Q) (g : Q ⟶ R) : (f ≫ g).f = f.f ≫ g.f := by rfl
 #align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_f
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.id_eq /-
 @[simp]
 theorem id_eq {P : Karoubi C} : 𝟙 P = ⟨P.p, by repeat' rw [P.idem]⟩ := by rfl
 #align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eq
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.coe /-
 /-- It is possible to coerce an object of `C` into an object of `karoubi C`.
 See also the functor `to_karoubi`. -/
 instance coe : CoeTC C (Karoubi C) :=
   ⟨fun X => ⟨X, 𝟙 X, by rw [comp_id]⟩⟩
 #align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coe
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.coe_X /-
 @[simp]
 theorem coe_X (X : C) : (X : Karoubi C).pt = X := by rfl
 #align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_X
+-/
 
 #print CategoryTheory.Idempotents.Karoubi.coe_p /-
 @[simp]
@@ -147,14 +167,17 @@ theorem coe_p (X : C) : (X : Karoubi C).p = 𝟙 X := by rfl
 #align category_theory.idempotents.karoubi.coe_p CategoryTheory.Idempotents.Karoubi.coe_p
 -/
 
+#print CategoryTheory.Idempotents.Karoubi.eqToHom_f /-
 @[simp]
 theorem eqToHom_f {P Q : Karoubi C} (h : P = Q) :
     Karoubi.Hom.f (eqToHom h) = P.p ≫ eqToHom (congr_arg Karoubi.x h) := by subst h;
   simp only [eq_to_hom_refl, karoubi.id_eq, comp_id]
 #align category_theory.idempotents.karoubi.eq_to_hom_f CategoryTheory.Idempotents.Karoubi.eqToHom_f
+-/
 
 end Karoubi
 
+#print CategoryTheory.Idempotents.toKaroubi /-
 /-- The obvious fully faithful functor `to_karoubi` sends an object `X : C` to the obvious
 formal direct factor of `X` given by `𝟙 X`. -/
 @[simps]
@@ -163,6 +186,7 @@ def toKaroubi : C ⥤ Karoubi C
   obj X := ⟨X, 𝟙 X, by rw [comp_id]⟩
   map X Y f := ⟨f, by simp only [comp_id, id_comp]⟩
 #align category_theory.idempotents.to_karoubi CategoryTheory.Idempotents.toKaroubi
+-/
 
 instance : Full (toKaroubi C) where preimage X Y f := f.f
 
@@ -188,10 +212,13 @@ instance [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q)
 
 namespace Karoubi
 
+#print CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff /-
 theorem hom_eq_zero_iff [Preadditive C] {P Q : Karoubi C} {f : Hom P Q} : f = 0 ↔ f.f = 0 :=
   hom_ext_iff
 #align category_theory.idempotents.karoubi.hom_eq_zero_iff CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.inclusionHom /-
 /-- The map sending `f : P ⟶ Q` to `f.f : P.X ⟶ Q.X` is additive. -/
 @[simps]
 def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.pt ⟶ Q.pt)
@@ -200,12 +227,15 @@ def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.p
   map_zero' := rfl
   map_add' f g := rfl
 #align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHom
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.sum_hom /-
 @[simp]
 theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type _} (s : Finset α) (f : α → (P ⟶ Q)) :
     (∑ x in s, f x).f = ∑ x in s, (f x).f :=
   AddMonoidHom.map_sum (inclusionHom P Q) f s
 #align category_theory.idempotents.karoubi.sum_hom CategoryTheory.Idempotents.Karoubi.sum_hom
+-/
 
 end Karoubi
 
@@ -239,69 +269,93 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
         { Hom := ⟨i, by erw [id_comp, ← h₂, ← assoc, h₁, id_comp]⟩
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
+#print CategoryTheory.Idempotents.toKaroubi_isEquivalence /-
 /-- If `C` is idempotent complete, the functor `to_karoubi : C ⥤ karoubi C` is an equivalence. -/
 def toKaroubi_isEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
 #align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalence
+-/
 
+#print CategoryTheory.Idempotents.toKaroubi_equivalence /-
 /-- The equivalence `C ≅ karoubi C` when `C` is idempotent complete. -/
 def toKaroubi_equivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
   haveI := to_karoubi_is_equivalence C
   functor.as_equivalence (to_karoubi C)
 #align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalence
+-/
 
+#print CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive /-
 instance toKaroubi_equivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
     (toKaroubi_equivalence C).Functor.Additive :=
   (inferInstance : (toKaroubi C).Additive)
 #align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive
+-/
 
 namespace Karoubi
 
 variable {C}
 
+#print CategoryTheory.Idempotents.Karoubi.decompId_i /-
 /-- The split mono which appears in the factorisation `decomp_id P`. -/
 @[simps]
 def decompId_i (P : Karoubi C) : P ⟶ P.pt :=
   ⟨P.p, by erw [coe_p, comp_id, P.idem]⟩
 #align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompId_i
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decompId_p /-
 /-- The split epi which appears in the factorisation `decomp_id P`. -/
 @[simps]
 def decompId_p (P : Karoubi C) : (P.pt : Karoubi C) ⟶ P :=
   ⟨P.p, by erw [coe_p, id_comp, P.idem]⟩
 #align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompId_p
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decompId /-
 /-- The formal direct factor of `P.X` given by the idempotent `P.p` in the category `C`
 is actually a direct factor in the category `karoubi C`. -/
 theorem decompId (P : Karoubi C) : 𝟙 P = decompId_i P ≫ decompId_p P := by ext;
   simp only [comp_f, id_eq, P.idem, decomp_id_i, decomp_id_p]
 #align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompId
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decomp_p /-
 theorem decomp_p (P : Karoubi C) : (toKaroubi C).map P.p = decompId_p P ≫ decompId_i P := by ext;
   simp only [comp_f, decomp_id_p_f, decomp_id_i_f, P.idem, to_karoubi_map_f]
 #align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_p
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi /-
 theorem decompId_i_toKaroubi (X : C) : decompId_i ((toKaroubi C).obj X) = 𝟙 _ := by ext; rfl
 #align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi /-
 theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _ := by ext; rfl
 #align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decompId_i_naturality /-
 theorem decompId_i_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     f ≫ decompId_i _ = decompId_i _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ := by ext;
   simp only [comp_f, decomp_id_i_f, karoubi.comp_p, karoubi.p_comp]
 #align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturality
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.decompId_p_naturality /-
 theorem decompId_p_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     decompId_p P ≫ f =
       (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.pt : Karoubi C) ⟶ Q.pt) ≫ decompId_p Q :=
   by ext; simp only [comp_f, decomp_id_p_f, karoubi.comp_p, karoubi.p_comp]
 #align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturality
+-/
 
+#print CategoryTheory.Idempotents.Karoubi.zsmul_hom /-
 @[simp]
 theorem zsmul_hom [Preadditive C] {P Q : Karoubi C} (n : ℤ) (f : P ⟶ Q) : (n • f).f = n • f.f :=
   map_zsmul (inclusionHom P Q) n f
 #align category_theory.idempotents.karoubi.zsmul_hom CategoryTheory.Idempotents.Karoubi.zsmul_hom
+-/
 
 end Karoubi
 
Diff
@@ -72,7 +72,7 @@ theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = e
     P = Q := by
   cases P
   cases Q
-  dsimp at h_X h_p
+  dsimp at h_X h_p 
   subst h_X
   simpa only [true_and_iff, eq_self_iff_true, id_comp, eq_to_hom_refl, heq_iff_eq, comp_id] using
     h_p
@@ -177,7 +177,7 @@ instance [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q)
     ⟨f.f + g.f, by
       rw [add_comp, comp_add]
       congr
-      exacts[f.comm, g.comm]⟩
+      exacts [f.comm, g.comm]⟩
   zero := ⟨0, by simp only [comp_zero, zero_comp]⟩
   zero_add f := by ext; simp only [zero_add]
   add_zero f := by ext; simp only [add_zero]
@@ -223,7 +223,7 @@ instance : IsIdempotentComplete (Karoubi C) :=
   refine' ⟨_⟩
   intro P p hp
   have hp' := hom_ext.mp hp
-  simp only [comp_f] at hp'
+  simp only [comp_f] at hp' 
   use ⟨P.X, p.f, hp'⟩
   use ⟨p.f, by rw [comp_p p, hp']⟩
   use ⟨p.f, by rw [hp', p_comp p]⟩
Diff
@@ -38,7 +38,7 @@ open CategoryTheory.Preadditive
 
 open CategoryTheory.Limits
 
-open BigOperators
+open scoped BigOperators
 
 namespace CategoryTheory
 
Diff
@@ -67,12 +67,6 @@ variable {C}
 
 attribute [simp, reassoc] idem
 
-/- warning: category_theory.idempotents.karoubi.ext -> CategoryTheory.Idempotents.Karoubi.ext is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (h_X : Eq.{succ u1} C (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)), (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.eqToHom.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) h_X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.eqToHom.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) h_X) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 Q))) -> (Eq.{max (succ u1) (succ u2)} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) P Q)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (h_X : Eq.{succ u2} C (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) h_X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) h_X) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q))) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) P Q)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.ext CategoryTheory.Idempotents.Karoubi.extₓ'. -/
 @[ext]
 theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = eqToHom h_X ≫ Q.p) :
     P = Q := by
@@ -99,12 +93,6 @@ structure Hom (P Q : Karoubi C) where
 instance [Preadditive C] (P Q : Karoubi C) : Inhabited (Hom P Q) :=
   ⟨⟨0, by rw [zero_comp, comp_zero]⟩⟩
 
-/- warning: category_theory.idempotents.karoubi.hom_ext -> CategoryTheory.Idempotents.Karoubi.hom_ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q} {g : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q}, Iff (Eq.{succ u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) f g) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q g))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q}, Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q) f g) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q g))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iffₓ'. -/
 @[simp]
 theorem hom_ext_iff {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
   by
@@ -113,42 +101,18 @@ theorem hom_ext_iff {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
   · ext
 #align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iff
 
-/- warning: category_theory.idempotents.karoubi.p_comp -> CategoryTheory.Idempotents.Karoubi.p_comp is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_compₓ'. -/
 @[simp, reassoc]
 theorem p_comp {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f := by rw [f.comm, ← assoc, P.idem]
 #align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_comp
 
-/- warning: category_theory.idempotents.karoubi.comp_p -> CategoryTheory.Idempotents.Karoubi.comp_p is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_pₓ'. -/
 @[simp, reassoc]
 theorem comp_p {P Q : Karoubi C} (f : Hom P Q) : f.f ≫ Q.p = f.f := by
   rw [f.comm, assoc, assoc, Q.idem]
 #align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_p
 
-/- warning: category_theory.idempotents.karoubi.p_comm -> CategoryTheory.Idempotents.Karoubi.p_comm is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 Q))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_commₓ'. -/
 theorem p_comm {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f ≫ Q.p := by rw [p_comp, comp_p]
 #align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_comm
 
-/- warning: category_theory.idempotents.karoubi.comp_proof -> CategoryTheory.Idempotents.Karoubi.comp_proof is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (g : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 Q R) (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 Q R g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 Q R g)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 R)))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (g : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 Q R) (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 Q R g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 Q R g)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 R)))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_proof CategoryTheory.Idempotents.Karoubi.comp_proofₓ'. -/
 theorem comp_proof {P Q R : Karoubi C} (g : Hom Q R) (f : Hom P Q) :
     f.f ≫ g.f = P.p ≫ (f.f ≫ g.f) ≫ R.p := by rw [assoc, comp_p, ← assoc, p_comp]
 #align category_theory.idempotents.karoubi.comp_proof CategoryTheory.Idempotents.Karoubi.comp_proof
@@ -159,41 +123,20 @@ instance : Category (Karoubi C) where
   id P := ⟨P.p, by repeat' rw [P.idem]⟩
   comp P Q R f g := ⟨f.f ≫ g.f, Karoubi.comp_proof g f⟩
 
-/- warning: category_theory.idempotents.karoubi.comp_f -> CategoryTheory.Idempotents.Karoubi.comp_f is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (g : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) Q R), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P R (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P Q R f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 Q R g))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q) (g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) Q R), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P R (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P Q R f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 Q R g))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_fₓ'. -/
 @[simp]
 theorem comp_f {P Q R : Karoubi C} (f : P ⟶ Q) (g : Q ⟶ R) : (f ≫ g).f = f.f ≫ g.f := by rfl
 #align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_f
 
-/- warning: category_theory.idempotents.karoubi.id_eq -> CategoryTheory.Idempotents.Karoubi.id_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eqₓ'. -/
 @[simp]
 theorem id_eq {P : Karoubi C} : 𝟙 P = ⟨P.p, by repeat' rw [P.idem]⟩ := by rfl
 #align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eq
 
-/- warning: category_theory.idempotents.karoubi.coe -> CategoryTheory.Idempotents.Karoubi.coe is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C], CoeTCₓ.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1)
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C], CoeTC.{succ u1, max (succ u2) (succ u1)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coeₓ'. -/
 /-- It is possible to coerce an object of `C` into an object of `karoubi C`.
 See also the functor `to_karoubi`. -/
 instance coe : CoeTC C (Karoubi C) :=
   ⟨fun X => ⟨X, 𝟙 X, by rw [comp_id]⟩⟩
 #align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coe
 
-/- warning: category_theory.idempotents.karoubi.coe_X -> CategoryTheory.Idempotents.Karoubi.coe_X is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u1} C (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) X)) X
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), Eq.{succ u2} C (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 X (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 X))) X
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_Xₓ'. -/
 @[simp]
 theorem coe_X (X : C) : (X : Karoubi C).pt = X := by rfl
 #align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_X
@@ -204,12 +147,6 @@ theorem coe_p (X : C) : (X : Karoubi C).p = 𝟙 X := by rfl
 #align category_theory.idempotents.karoubi.coe_p CategoryTheory.Idempotents.Karoubi.coe_p
 -/
 
-/- warning: category_theory.idempotents.karoubi.eq_to_hom_f -> CategoryTheory.Idempotents.Karoubi.eqToHom_f is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (h : Eq.{max (succ u1) (succ u2)} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (CategoryTheory.eqToHom.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) P Q h)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.eqToHom.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (congr_arg.{max (succ u1) (succ u2), succ u1} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) C P Q (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1) h)))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (h : Eq.{max (succ u2) (succ u1)} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q (CategoryTheory.eqToHom.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) P Q h)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (congr_arg.{max (succ u1) (succ u2), succ u2} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) C P Q (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1) h)))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.eq_to_hom_f CategoryTheory.Idempotents.Karoubi.eqToHom_fₓ'. -/
 @[simp]
 theorem eqToHom_f {P Q : Karoubi C} (h : P = Q) :
     Karoubi.Hom.f (eqToHom h) = P.p ≫ eqToHom (congr_arg Karoubi.x h) := by subst h;
@@ -218,12 +155,6 @@ theorem eqToHom_f {P Q : Karoubi C} (h : P = Q) :
 
 end Karoubi
 
-/- warning: category_theory.idempotents.to_karoubi -> CategoryTheory.Idempotents.toKaroubi is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C], CategoryTheory.Functor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)
-but is expected to have type
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C], CategoryTheory.Functor.{u2, u2, u1, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi CategoryTheory.Idempotents.toKaroubiₓ'. -/
 /-- The obvious fully faithful functor `to_karoubi` sends an object `X : C` to the obvious
 formal direct factor of `X` given by `𝟙 X`. -/
 @[simps]
@@ -257,22 +188,10 @@ instance [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q)
 
 namespace Karoubi
 
-/- warning: category_theory.idempotents.karoubi.hom_eq_zero_iff -> CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q}, Iff (Eq.{succ u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) f (OfNat.ofNat.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) 0 (OfNat.mk.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) 0 (Zero.zero.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddZeroClass.toHasZero.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddMonoid.toAddZeroClass.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (SubNegMonoid.toAddMonoid.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddGroup.toSubNegMonoid.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddCommGroup.toAddGroup.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q}, Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (NegZeroClass.toZero.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegZeroMonoid.toNegZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionCommMonoid.toSubtractionMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toDivisionAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u1, u2} C _inst_1 _inst_2 P Q))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.hom_eq_zero_iff CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iffₓ'. -/
 theorem hom_eq_zero_iff [Preadditive C] {P Q : Karoubi C} {f : Hom P Q} : f = 0 ↔ f.f = 0 :=
   hom_ext_iff
 #align category_theory.idempotents.karoubi.hom_eq_zero_iff CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff
 
-/- warning: category_theory.idempotents.karoubi.inclusion_hom -> CategoryTheory.Idempotents.Karoubi.inclusionHom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q))))))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHomₓ'. -/
 /-- The map sending `f : P ⟶ Q` to `f.f : P.X ⟶ Q.X` is additive. -/
 @[simps]
 def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.pt ⟶ Q.pt)
@@ -282,12 +201,6 @@ def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.p
   map_add' f g := rfl
 #align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHom
 
-/- warning: category_theory.idempotents.karoubi.sum_hom -> CategoryTheory.Idempotents.Karoubi.sum_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {α : Type.{u3}} (s : Finset.{u3} α) (f : α -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q)), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (Finset.sum.{u2, u3} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u2, u3} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (f x)))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] [_inst_2 : CategoryTheory.Preadditive.{u3, u2} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {α : Type.{u1}} (s : Finset.{u1} α) (f : α -> (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q)), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u2, u3} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u3, u2} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (f x)))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.sum_hom CategoryTheory.Idempotents.Karoubi.sum_homₓ'. -/
 @[simp]
 theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type _} (s : Finset α) (f : α → (P ⟶ Q)) :
     (∑ x in s, f x).f = ∑ x in s, (f x).f :=
@@ -326,35 +239,17 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
         { Hom := ⟨i, by erw [id_comp, ← h₂, ← assoc, h₁, id_comp]⟩
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
-/- warning: category_theory.idempotents.to_karoubi_is_equivalence -> CategoryTheory.Idempotents.toKaroubi_isEquivalence is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.IsEquivalence.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)
-but is expected to have type
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.IsEquivalence.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalenceₓ'. -/
 /-- If `C` is idempotent complete, the functor `to_karoubi : C ⥤ karoubi C` is an equivalence. -/
 def toKaroubi_isEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
 #align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalence
 
-/- warning: category_theory.idempotents.to_karoubi_equivalence -> CategoryTheory.Idempotents.toKaroubi_equivalence is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Equivalence.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)
-but is expected to have type
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Equivalence.{u2, u2, u1, max u2 u1} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalenceₓ'. -/
 /-- The equivalence `C ≅ karoubi C` when `C` is idempotent complete. -/
 def toKaroubi_equivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
   haveI := to_karoubi_is_equivalence C
   functor.as_equivalence (to_karoubi C)
 #align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalence
 
-/- warning: category_theory.idempotents.to_karoubi_equivalence_functor_additive -> CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Functor.Additive.{u1, max u1 u2, u2, u2} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) _inst_2 (CategoryTheory.Idempotents.Karoubi.CategoryTheory.preadditive.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Equivalence.functor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi_equivalence.{u1, u2} C _inst_1 _inst_3))
-but is expected to have type
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Functor.Additive.{u1, max u1 u2, u2, u2} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) _inst_2 (CategoryTheory.Idempotents.instPreadditiveKaroubiInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Equivalence.functor.{u2, u2, u1, max u1 u2} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi_equivalence.{u1, u2} C _inst_1 _inst_3))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additiveₓ'. -/
 instance toKaroubi_equivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
     (toKaroubi_equivalence C).Functor.Additive :=
   (inferInstance : (toKaroubi C).Additive)
@@ -364,90 +259,45 @@ namespace Karoubi
 
 variable {C}
 
-/- warning: category_theory.idempotents.karoubi.decomp_id_i -> CategoryTheory.Idempotents.Karoubi.decompId_i is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P)))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompId_iₓ'. -/
 /-- The split mono which appears in the factorisation `decomp_id P`. -/
 @[simps]
 def decompId_i (P : Karoubi C) : P ⟶ P.pt :=
   ⟨P.p, by erw [coe_p, comp_id, P.idem]⟩
 #align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompId_i
 
-/- warning: category_theory.idempotents.karoubi.decomp_id_p -> CategoryTheory.Idempotents.Karoubi.decompId_p is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P))) P
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompId_pₓ'. -/
 /-- The split epi which appears in the factorisation `decomp_id P`. -/
 @[simps]
 def decompId_p (P : Karoubi C) : (P.pt : Karoubi C) ⟶ P :=
   ⟨P.p, by erw [coe_p, id_comp, P.idem]⟩
 #align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompId_p
 
-/- warning: category_theory.idempotents.karoubi.decomp_id -> CategoryTheory.Idempotents.Karoubi.decompId is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 P))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompIdₓ'. -/
 /-- The formal direct factor of `P.X` given by the idempotent `P.p` in the category `C`
 is actually a direct factor in the category `karoubi C`. -/
 theorem decompId (P : Karoubi C) : 𝟙 P = decompId_i P ≫ decompId_p P := by ext;
   simp only [comp_f, id_eq, P.idem, decomp_id_i, decomp_id_p]
 #align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompId
 
-/- warning: category_theory.idempotents.karoubi.decomp_p -> CategoryTheory.Idempotents.Karoubi.decomp_p is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Functor.map.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 P))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (Prefunctor.map.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_pₓ'. -/
 theorem decomp_p (P : Karoubi C) : (toKaroubi C).map P.p = decompId_p P ≫ decompId_i P := by ext;
   simp only [comp_f, decomp_id_p_f, decomp_id_i_f, P.idem, to_karoubi_map_f]
 #align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_p
 
-/- warning: category_theory.idempotents.karoubi.decomp_id_i_to_karoubi -> CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubiₓ'. -/
 theorem decompId_i_toKaroubi (X : C) : decompId_i ((toKaroubi C).obj X) = 𝟙 _ := by ext; rfl
 #align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi
 
-/- warning: category_theory.idempotents.karoubi.decomp_id_p_to_karoubi -> CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubiₓ'. -/
 theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _ := by ext; rfl
 #align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi
 
-/- warning: category_theory.idempotents.karoubi.decomp_id_i_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_i_naturality is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturalityₓ'. -/
 theorem decompId_i_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     f ≫ decompId_i _ = decompId_i _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ := by ext;
   simp only [comp_f, decomp_id_i_f, karoubi.comp_p, karoubi.p_comp]
 #align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturality
 
-/- warning: category_theory.idempotents.karoubi.decomp_id_p_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_p_naturality is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturalityₓ'. -/
 theorem decompId_p_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     decompId_p P ≫ f =
       (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.pt : Karoubi C) ⟶ Q.pt) ≫ decompId_p Q :=
   by ext; simp only [comp_f, decomp_id_p_f, karoubi.comp_p, karoubi.p_comp]
 #align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturality
 
-/- warning: category_theory.idempotents.karoubi.zsmul_hom -> CategoryTheory.Idempotents.Karoubi.zsmul_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (SMul.smul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)))) n f)) (SMul.smul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u1, u2} C _inst_1 _inst_2 P Q))))) n f)) (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
-Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.zsmul_hom CategoryTheory.Idempotents.Karoubi.zsmul_homₓ'. -/
 @[simp]
 theorem zsmul_hom [Preadditive C] {P Q : Karoubi C} (n : ℤ) (f : P ⟶ Q) : (n • f).f = n • f.f :=
   map_zsmul (inclusionHom P Q) n f
Diff
@@ -109,8 +109,7 @@ Case conversion may be inaccurate. Consider using '#align category_theory.idempo
 theorem hom_ext_iff {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
   by
   constructor
-  · intro h
-    rw [h]
+  · intro h; rw [h]
   · ext
 #align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iff
 
@@ -213,9 +212,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.eq_to_hom_f CategoryTheory.Idempotents.Karoubi.eqToHom_fₓ'. -/
 @[simp]
 theorem eqToHom_f {P Q : Karoubi C} (h : P = Q) :
-    Karoubi.Hom.f (eqToHom h) = P.p ≫ eqToHom (congr_arg Karoubi.x h) :=
-  by
-  subst h
+    Karoubi.Hom.f (eqToHom h) = P.p ≫ eqToHom (congr_arg Karoubi.x h) := by subst h;
   simp only [eq_to_hom_refl, karoubi.id_eq, comp_id]
 #align category_theory.idempotents.karoubi.eq_to_hom_f CategoryTheory.Idempotents.Karoubi.eqToHom_f
 
@@ -251,20 +248,12 @@ instance [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q)
       congr
       exacts[f.comm, g.comm]⟩
   zero := ⟨0, by simp only [comp_zero, zero_comp]⟩
-  zero_add f := by
-    ext
-    simp only [zero_add]
-  add_zero f := by
-    ext
-    simp only [add_zero]
+  zero_add f := by ext; simp only [zero_add]
+  add_zero f := by ext; simp only [add_zero]
   add_assoc f g h' := by simp only [add_assoc]
-  add_comm f g := by
-    ext
-    apply_rules [add_comm]
+  add_comm f g := by ext; apply_rules [add_comm]
   neg f := ⟨-f.f, by simpa only [neg_comp, comp_neg, neg_inj] using f.comm⟩
-  add_left_neg f := by
-    ext
-    apply_rules [add_left_neg]
+  add_left_neg f := by ext; apply_rules [add_left_neg]
 
 namespace Karoubi
 
@@ -407,9 +396,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompIdₓ'. -/
 /-- The formal direct factor of `P.X` given by the idempotent `P.p` in the category `C`
 is actually a direct factor in the category `karoubi C`. -/
-theorem decompId (P : Karoubi C) : 𝟙 P = decompId_i P ≫ decompId_p P :=
-  by
-  ext
+theorem decompId (P : Karoubi C) : 𝟙 P = decompId_i P ≫ decompId_p P := by ext;
   simp only [comp_f, id_eq, P.idem, decomp_id_i, decomp_id_p]
 #align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompId
 
@@ -419,9 +406,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (Prefunctor.map.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_pₓ'. -/
-theorem decomp_p (P : Karoubi C) : (toKaroubi C).map P.p = decompId_p P ≫ decompId_i P :=
-  by
-  ext
+theorem decomp_p (P : Karoubi C) : (toKaroubi C).map P.p = decompId_p P ≫ decompId_i P := by ext;
   simp only [comp_f, decomp_id_p_f, decomp_id_i_f, P.idem, to_karoubi_map_f]
 #align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_p
 
@@ -431,28 +416,20 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubiₓ'. -/
-theorem decompId_i_toKaroubi (X : C) : decompId_i ((toKaroubi C).obj X) = 𝟙 _ :=
-  by
-  ext
-  rfl
+theorem decompId_i_toKaroubi (X : C) : decompId_i ((toKaroubi C).obj X) = 𝟙 _ := by ext; rfl
 #align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi
 
 /- warning: category_theory.idempotents.karoubi.decomp_id_p_to_karoubi -> CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi is a dubious translation:
 <too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubiₓ'. -/
-theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _ :=
-  by
-  ext
-  rfl
+theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _ := by ext; rfl
 #align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi
 
 /- warning: category_theory.idempotents.karoubi.decomp_id_i_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_i_naturality is a dubious translation:
 <too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturalityₓ'. -/
 theorem decompId_i_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
-    f ≫ decompId_i _ = decompId_i _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ :=
-  by
-  ext
+    f ≫ decompId_i _ = decompId_i _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ := by ext;
   simp only [comp_f, decomp_id_i_f, karoubi.comp_p, karoubi.p_comp]
 #align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturality
 
@@ -462,9 +439,7 @@ Case conversion may be inaccurate. Consider using '#align category_theory.idempo
 theorem decompId_p_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     decompId_p P ≫ f =
       (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.pt : Karoubi C) ⟶ Q.pt) ≫ decompId_p Q :=
-  by
-  ext
-  simp only [comp_f, decomp_id_p_f, karoubi.comp_p, karoubi.p_comp]
+  by ext; simp only [comp_f, decomp_id_p_f, karoubi.comp_p, karoubi.p_comp]
 #align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturality
 
 /- warning: category_theory.idempotents.karoubi.zsmul_hom -> CategoryTheory.Idempotents.Karoubi.zsmul_hom is a dubious translation:
Diff
@@ -171,10 +171,7 @@ theorem comp_f {P Q R : Karoubi C} (f : P ⟶ Q) (g : Q ⟶ R) : (f ≫ g).f = f
 #align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_f
 
 /- warning: category_theory.idempotents.karoubi.id_eq -> CategoryTheory.Idempotents.Karoubi.id_eq is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1}, Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u1, u2} C _inst_1 P P (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) _a))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u1, u2} C _inst_1 P))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u1, u2} C _inst_1 P))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1}, Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u2, u1} C _inst_1 P P (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) _a))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))))) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u2, u1} C _inst_1 P))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) _a)) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u2, u1} C _inst_1 P))) (Eq.refl.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eqₓ'. -/
 @[simp]
 theorem id_eq {P : Karoubi C} : 𝟙 P = ⟨P.p, by repeat' rw [P.idem]⟩ := by rfl
@@ -441,10 +438,7 @@ theorem decompId_i_toKaroubi (X : C) : decompId_i ((toKaroubi C).obj X) = 𝟙 _
 #align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi
 
 /- warning: category_theory.idempotents.karoubi.decomp_id_p_to_karoubi -> CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X))))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)))) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubiₓ'. -/
 theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _ :=
   by
@@ -453,10 +447,7 @@ theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _
 #align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi
 
 /- warning: category_theory.idempotents.karoubi.decomp_id_i_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_i_naturality is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P Q ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) f (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) _a))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.comp_id.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.id_comp.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))))))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P Q (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) f (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (of_eq_true (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.trans.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) True (congrArg.{succ u1, 1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) Prop (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (Eq.trans.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (congrArg.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Category.comp_id.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))) (CategoryTheory.Category.id_comp.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)))) (eq_self.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturalityₓ'. -/
 theorem decompId_i_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     f ≫ decompId_i _ = decompId_i _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ :=
@@ -466,10 +457,7 @@ theorem decompId_i_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
 #align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturality
 
 /- warning: category_theory.idempotents.karoubi.decomp_id_p_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_p_naturality is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) Q) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P Q (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 P) f) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) Q (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) _a))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.comp_id.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.id_comp.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 Q))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) Q) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P Q (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P) f) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) Q (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (of_eq_true (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.trans.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) True (congrArg.{succ u1, 1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) Prop (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (Eq.trans.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (congrArg.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Category.comp_id.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))) (CategoryTheory.Category.id_comp.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)))) (eq_self.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 Q))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturalityₓ'. -/
 theorem decompId_p_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
     decompId_p P ≫ f =
Diff
@@ -65,7 +65,7 @@ namespace Karoubi
 
 variable {C}
 
-attribute [simp, reassoc.1] idem
+attribute [simp, reassoc] idem
 
 /- warning: category_theory.idempotents.karoubi.ext -> CategoryTheory.Idempotents.Karoubi.ext is a dubious translation:
 lean 3 declaration is
@@ -120,7 +120,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_compₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem p_comp {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f := by rw [f.comm, ← assoc, P.idem]
 #align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_comp
 
@@ -130,7 +130,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_pₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem comp_p {P Q : Karoubi C} (f : Hom P Q) : f.f ≫ Q.p = f.f := by
   rw [f.comm, assoc, assoc, Q.idem]
 #align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_p
Diff
@@ -275,7 +275,7 @@ namespace Karoubi
 lean 3 declaration is
   forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q}, Iff (Eq.{succ u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) f (OfNat.ofNat.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) 0 (OfNat.mk.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) 0 (Zero.zero.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddZeroClass.toHasZero.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddMonoid.toAddZeroClass.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (SubNegMonoid.toAddMonoid.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddGroup.toSubNegMonoid.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddCommGroup.toAddGroup.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))
 but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q}, Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (NegZeroClass.toZero.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegZeroMonoid.toNegZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionCommMonoid.toSubtractionMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toDivisionAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2 P Q))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q}, Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (NegZeroClass.toZero.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegZeroMonoid.toNegZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionCommMonoid.toSubtractionMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toDivisionAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u1, u2} C _inst_1 _inst_2 P Q))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.hom_eq_zero_iff CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iffₓ'. -/
 theorem hom_eq_zero_iff [Preadditive C] {P Q : Karoubi C} {f : Hom P Q} : f = 0 ↔ f.f = 0 :=
   hom_ext_iff
@@ -285,7 +285,7 @@ theorem hom_eq_zero_iff [Preadditive C] {P Q : Karoubi C} {f : Hom P Q} : f = 0
 lean 3 declaration is
   forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))
 but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q))))))
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q))))))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHomₓ'. -/
 /-- The map sending `f : P ⟶ Q` to `f.f : P.X ⟶ Q.X` is additive. -/
 @[simps]
@@ -300,7 +300,7 @@ def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.p
 lean 3 declaration is
   forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {α : Type.{u3}} (s : Finset.{u3} α) (f : α -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q)), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (Finset.sum.{u2, u3} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u2, u3} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (f x)))
 but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] [_inst_2 : CategoryTheory.Preadditive.{u3, u2} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {α : Type.{u1}} (s : Finset.{u1} α) (f : α -> (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q)), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u2, u3} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u3, u2} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (f x)))
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] [_inst_2 : CategoryTheory.Preadditive.{u3, u2} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {α : Type.{u1}} (s : Finset.{u1} α) (f : α -> (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q)), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u2, u3} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u3, u2} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (f x)))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.sum_hom CategoryTheory.Idempotents.Karoubi.sum_homₓ'. -/
 @[simp]
 theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type _} (s : Finset α) (f : α → (P ⟶ Q)) :
@@ -483,7 +483,7 @@ theorem decompId_p_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
 lean 3 declaration is
   forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (SMul.smul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)))) n f)) (SMul.smul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
 but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2 P Q))))) n f)) (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHom.{u1, u2} C _inst_1 _inst_2 P Q))))) n f)) (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
 Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.zsmul_hom CategoryTheory.Idempotents.Karoubi.zsmul_homₓ'. -/
 @[simp]
 theorem zsmul_hom [Preadditive C] {P Q : Karoubi C} (n : ℤ) (f : P ⟶ Q) : (n • f).f = n • f.f :=
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.karoubi
-! leanprover-community/mathlib commit 200eda15d8ff5669854ff6bcc10aaf37cb70498f
+! leanprover-community/mathlib commit 19cb3751e5e9b3d97adb51023949c50c13b5fdfd
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.Equivalence
 /-!
 # The Karoubi envelope of a category
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file, we define the Karoubi envelope `karoubi C` of a category `C`.
 
 ## Main constructions and definitions
Diff
@@ -43,6 +43,7 @@ variable (C : Type _) [Category C]
 
 namespace Idempotents
 
+#print CategoryTheory.Idempotents.Karoubi /-
 /-- In a preadditive category `C`, when an object `X` decomposes as `X ≅ P ⨿ Q`, one may
 consider `P` as a direct factor of `X` and up to unique isomorphism, it is determined by the
 obvious idempotent `X ⟶ P ⟶ X` which is the projection onto `P` with kernel `Q`. More generally,
@@ -55,6 +56,7 @@ structure Karoubi where
   p : X ⟶ X
   idem : p ≫ p = p
 #align category_theory.idempotents.karoubi CategoryTheory.Idempotents.Karoubi
+-/
 
 namespace Karoubi
 
@@ -62,6 +64,12 @@ variable {C}
 
 attribute [simp, reassoc.1] idem
 
+/- warning: category_theory.idempotents.karoubi.ext -> CategoryTheory.Idempotents.Karoubi.ext is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (h_X : Eq.{succ u1} C (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)), (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.eqToHom.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) h_X)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.eqToHom.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) h_X) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 Q))) -> (Eq.{max (succ u1) (succ u2)} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) P Q)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (h_X : Eq.{succ u2} C (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) h_X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) h_X) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q))) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) P Q)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.ext CategoryTheory.Idempotents.Karoubi.extₓ'. -/
 @[ext]
 theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = eqToHom h_X ≫ Q.p) :
     P = Q := by
@@ -73,6 +81,7 @@ theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = e
     h_p
 #align category_theory.idempotents.karoubi.ext CategoryTheory.Idempotents.Karoubi.ext
 
+#print CategoryTheory.Idempotents.Karoubi.Hom /-
 /-- A morphism `P ⟶ Q` in the category `karoubi C` is a morphism in the underlying category
 `C` which satisfies a relation, which in the preadditive case, expresses that it induces a
 map between the corresponding "formal direct factors" and that it vanishes on the complement
@@ -82,31 +91,62 @@ structure Hom (P Q : Karoubi C) where
   f : P.pt ⟶ Q.pt
   comm : f = P.p ≫ f ≫ Q.p
 #align category_theory.idempotents.karoubi.hom CategoryTheory.Idempotents.Karoubi.Hom
+-/
 
 instance [Preadditive C] (P Q : Karoubi C) : Inhabited (Hom P Q) :=
   ⟨⟨0, by rw [zero_comp, comp_zero]⟩⟩
 
+/- warning: category_theory.idempotents.karoubi.hom_ext -> CategoryTheory.Idempotents.Karoubi.hom_ext_iff is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q} {g : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q}, Iff (Eq.{succ u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) f g) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q g))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q}, Iff (Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q) f g) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q g))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iffₓ'. -/
 @[simp]
-theorem hom_ext {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
+theorem hom_ext_iff {P Q : Karoubi C} {f g : Hom P Q} : f = g ↔ f.f = g.f :=
   by
   constructor
   · intro h
     rw [h]
   · ext
-#align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext
-
+#align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iff
+
+/- warning: category_theory.idempotents.karoubi.p_comp -> CategoryTheory.Idempotents.Karoubi.p_comp is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_compₓ'. -/
 @[simp, reassoc.1]
 theorem p_comp {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f := by rw [f.comm, ← assoc, P.idem]
 #align category_theory.idempotents.karoubi.p_comp CategoryTheory.Idempotents.Karoubi.p_comp
 
+/- warning: category_theory.idempotents.karoubi.comp_p -> CategoryTheory.Idempotents.Karoubi.comp_p is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_pₓ'. -/
 @[simp, reassoc.1]
 theorem comp_p {P Q : Karoubi C} (f : Hom P Q) : f.f ≫ Q.p = f.f := by
   rw [f.comm, assoc, assoc, Q.idem]
 #align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_p
 
+/- warning: category_theory.idempotents.karoubi.p_comm -> CategoryTheory.Idempotents.Karoubi.p_comm is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 Q))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 Q))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_commₓ'. -/
 theorem p_comm {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f ≫ Q.p := by rw [p_comp, comp_p]
 #align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_comm
 
+/- warning: category_theory.idempotents.karoubi.comp_proof -> CategoryTheory.Idempotents.Karoubi.comp_proof is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (g : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 Q R) (f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 Q R g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 Q R g)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 R)))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (g : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 Q R) (f : CategoryTheory.Idempotents.Karoubi.Hom.{u2, u1} C _inst_1 P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 Q R g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 Q R g)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 R)))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_proof CategoryTheory.Idempotents.Karoubi.comp_proofₓ'. -/
 theorem comp_proof {P Q R : Karoubi C} (g : Hom Q R) (f : Hom P Q) :
     f.f ≫ g.f = P.p ≫ (f.f ≫ g.f) ≫ R.p := by rw [assoc, comp_p, ← assoc, p_comp]
 #align category_theory.idempotents.karoubi.comp_proof CategoryTheory.Idempotents.Karoubi.comp_proof
@@ -117,28 +157,60 @@ instance : Category (Karoubi C) where
   id P := ⟨P.p, by repeat' rw [P.idem]⟩
   comp P Q R f g := ⟨f.f ≫ g.f, Karoubi.comp_proof g f⟩
 
+/- warning: category_theory.idempotents.karoubi.comp_f -> CategoryTheory.Idempotents.Karoubi.comp_f is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (g : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) Q R), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P R (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P Q R f g)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 Q R g))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {R : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q) (g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) Q R), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P R (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P Q R f g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 R) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 Q R g))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_fₓ'. -/
 @[simp]
 theorem comp_f {P Q R : Karoubi C} (f : P ⟶ Q) (g : Q ⟶ R) : (f ≫ g).f = f.f ≫ g.f := by rfl
 #align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_f
 
+/- warning: category_theory.idempotents.karoubi.id_eq -> CategoryTheory.Idempotents.Karoubi.id_eq is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1}, Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u1, u2} C _inst_1 P P (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) _a))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u1, u2} C _inst_1 P))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u1, u2} C _inst_1 P))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)))))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1}, Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u2, u1} C _inst_1 P P (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) _a))) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))))) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u2, u1} C _inst_1 P))) (Eq.mpr.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (id.{0} (Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.ndrec.{0, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (fun (_a : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) => Eq.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) _a)) (Eq.refl.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.idem.{u2, u1} C _inst_1 P))) (Eq.refl.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eqₓ'. -/
 @[simp]
 theorem id_eq {P : Karoubi C} : 𝟙 P = ⟨P.p, by repeat' rw [P.idem]⟩ := by rfl
 #align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eq
 
+/- warning: category_theory.idempotents.karoubi.coe -> CategoryTheory.Idempotents.Karoubi.coe is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C], CoeTCₓ.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1)
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C], CoeTC.{succ u1, max (succ u2) (succ u1)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coeₓ'. -/
 /-- It is possible to coerce an object of `C` into an object of `karoubi C`.
 See also the functor `to_karoubi`. -/
 instance coe : CoeTC C (Karoubi C) :=
   ⟨fun X => ⟨X, 𝟙 X, by rw [comp_id]⟩⟩
 #align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coe
 
+/- warning: category_theory.idempotents.karoubi.coe_X -> CategoryTheory.Idempotents.Karoubi.coe_X is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u1} C (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) X)) X
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), Eq.{succ u2} C (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 X (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 X))) X
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_Xₓ'. -/
 @[simp]
-theorem coe_x (X : C) : (X : Karoubi C).pt = X := by rfl
-#align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_x
+theorem coe_X (X : C) : (X : Karoubi C).pt = X := by rfl
+#align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_X
 
+#print CategoryTheory.Idempotents.Karoubi.coe_p /-
 @[simp]
 theorem coe_p (X : C) : (X : Karoubi C).p = 𝟙 X := by rfl
 #align category_theory.idempotents.karoubi.coe_p CategoryTheory.Idempotents.Karoubi.coe_p
+-/
 
+/- warning: category_theory.idempotents.karoubi.eq_to_hom_f -> CategoryTheory.Idempotents.Karoubi.eqToHom_f is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (h : Eq.{max (succ u1) (succ u2)} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (CategoryTheory.eqToHom.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) P Q h)) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P) (CategoryTheory.eqToHom.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q) (congr_arg.{max (succ u1) (succ u2), succ u1} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) C P Q (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1) h)))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (h : Eq.{max (succ u2) (succ u1)} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q (CategoryTheory.eqToHom.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) P Q h)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (congr_arg.{max (succ u1) (succ u2), succ u2} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) C P Q (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1) h)))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.eq_to_hom_f CategoryTheory.Idempotents.Karoubi.eqToHom_fₓ'. -/
 @[simp]
 theorem eqToHom_f {P Q : Karoubi C} (h : P = Q) :
     Karoubi.Hom.f (eqToHom h) = P.p ≫ eqToHom (congr_arg Karoubi.x h) :=
@@ -149,6 +221,12 @@ theorem eqToHom_f {P Q : Karoubi C} (h : P = Q) :
 
 end Karoubi
 
+/- warning: category_theory.idempotents.to_karoubi -> CategoryTheory.Idempotents.toKaroubi is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C], CategoryTheory.Functor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)
+but is expected to have type
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C], CategoryTheory.Functor.{u2, u2, u1, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi CategoryTheory.Idempotents.toKaroubiₓ'. -/
 /-- The obvious fully faithful functor `to_karoubi` sends an object `X : C` to the obvious
 formal direct factor of `X` given by `𝟙 X`. -/
 @[simps]
@@ -190,10 +268,22 @@ instance [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q)
 
 namespace Karoubi
 
+/- warning: category_theory.idempotents.karoubi.hom_eq_zero_iff -> CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q}, Iff (Eq.{succ u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) f (OfNat.ofNat.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) 0 (OfNat.mk.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) 0 (Zero.zero.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddZeroClass.toHasZero.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddMonoid.toAddZeroClass.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (SubNegMonoid.toAddMonoid.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddGroup.toSubNegMonoid.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (AddCommGroup.toAddGroup.{u2} (CategoryTheory.Idempotents.Karoubi.Hom.{u1, u2} C _inst_1 P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q}, Iff (Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (NegZeroClass.toZero.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegZeroMonoid.toNegZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubtractionCommMonoid.toSubtractionMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toDivisionAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2 P Q))))))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u1} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} C _inst_1 _inst_2) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.hom_eq_zero_iff CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iffₓ'. -/
 theorem hom_eq_zero_iff [Preadditive C] {P Q : Karoubi C} {f : Hom P Q} : f = 0 ↔ f.f = 0 :=
-  hom_ext
+  hom_ext_iff
 #align category_theory.idempotents.karoubi.hom_eq_zero_iff CategoryTheory.Idempotents.Karoubi.hom_eq_zero_iff
 
+/- warning: category_theory.idempotents.karoubi.inclusion_hom -> CategoryTheory.Idempotents.Karoubi.inclusionHom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), AddMonoidHom.{u2, u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2 P Q))))) (AddMonoid.toAddZeroClass.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.toAddMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHomₓ'. -/
 /-- The map sending `f : P ⟶ Q` to `f.f : P.X ⟶ Q.X` is additive. -/
 @[simps]
 def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.pt ⟶ Q.pt)
@@ -203,6 +293,12 @@ def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.p
   map_add' f g := rfl
 #align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHom
 
+/- warning: category_theory.idempotents.karoubi.sum_hom -> CategoryTheory.Idempotents.Karoubi.sum_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {α : Type.{u3}} (s : Finset.{u3} α) (f : α -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q)), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (Finset.sum.{u2, u3} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u2, u3} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (f x)))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} C] [_inst_2 : CategoryTheory.Preadditive.{u3, u2} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1} {α : Type.{u1}} (s : Finset.{u1} α) (f : α -> (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q)), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u3, max u2 u3} (CategoryTheory.Idempotents.Karoubi.{u2, u3} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u3} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u2, u3} C _inst_1 _inst_2 P Q)) s (fun (x : α) => f x))) (Finset.sum.{u3, u1} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) α (AddCommGroup.toAddCommMonoid.{u3} (Quiver.Hom.{succ u3, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} C (CategoryTheory.Category.toCategoryStruct.{u3, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u3, u2} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u3} C _inst_1 Q))) s (fun (x : α) => CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u3} C _inst_1 P Q (f x)))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.sum_hom CategoryTheory.Idempotents.Karoubi.sum_homₓ'. -/
 @[simp]
 theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type _} (s : Finset α) (f : α → (P ⟶ Q)) :
     (∑ x in s, f x).f = ∑ x in s, (f x).f :=
@@ -241,79 +337,151 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
         { Hom := ⟨i, by erw [id_comp, ← h₂, ← assoc, h₁, id_comp]⟩
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
+/- warning: category_theory.idempotents.to_karoubi_is_equivalence -> CategoryTheory.Idempotents.toKaroubi_isEquivalence is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.IsEquivalence.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)
+but is expected to have type
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.IsEquivalence.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalenceₓ'. -/
 /-- If `C` is idempotent complete, the functor `to_karoubi : C ⥤ karoubi C` is an equivalence. -/
-def toKaroubiIsEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
+def toKaroubi_isEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
-#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubiIsEquivalence
-
+#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalence
+
+/- warning: category_theory.idempotents.to_karoubi_equivalence -> CategoryTheory.Idempotents.toKaroubi_equivalence is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Equivalence.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)
+but is expected to have type
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Equivalence.{u2, u2, u1, max u2 u1} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalenceₓ'. -/
 /-- The equivalence `C ≅ karoubi C` when `C` is idempotent complete. -/
-def toKaroubiEquivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
+def toKaroubi_equivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
   haveI := to_karoubi_is_equivalence C
   functor.as_equivalence (to_karoubi C)
-#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubiEquivalence
-
-instance toKaroubiEquivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
-    (toKaroubiEquivalence C).Functor.Additive :=
+#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalence
+
+/- warning: category_theory.idempotents.to_karoubi_equivalence_functor_additive -> CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Functor.Additive.{u1, max u1 u2, u2, u2} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) _inst_2 (CategoryTheory.Idempotents.Karoubi.CategoryTheory.preadditive.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Equivalence.functor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi_equivalence.{u1, u2} C _inst_1 _inst_3))
+but is expected to have type
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.IsIdempotentComplete.{u1, u2} C _inst_1], CategoryTheory.Functor.Additive.{u1, max u1 u2, u2, u2} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) _inst_2 (CategoryTheory.Idempotents.instPreadditiveKaroubiInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2) (CategoryTheory.Equivalence.functor.{u2, u2, u1, max u1 u2} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) _inst_1 (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi_equivalence.{u1, u2} C _inst_1 _inst_3))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additiveₓ'. -/
+instance toKaroubi_equivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
+    (toKaroubi_equivalence C).Functor.Additive :=
   (inferInstance : (toKaroubi C).Additive)
-#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubiEquivalence_functor_additive
+#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive
 
 namespace Karoubi
 
 variable {C}
 
+/- warning: category_theory.idempotents.karoubi.decomp_id_i -> CategoryTheory.Idempotents.Karoubi.decompId_i is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P)))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompId_iₓ'. -/
 /-- The split mono which appears in the factorisation `decomp_id P`. -/
 @[simps]
-def decompIdI (P : Karoubi C) : P ⟶ P.pt :=
+def decompId_i (P : Karoubi C) : P ⟶ P.pt :=
   ⟨P.p, by erw [coe_p, comp_id, P.idem]⟩
-#align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompIdI
-
+#align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompId_i
+
+/- warning: category_theory.idempotents.karoubi.decomp_id_p -> CategoryTheory.Idempotents.Karoubi.decompId_p is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P))) P
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompId_pₓ'. -/
 /-- The split epi which appears in the factorisation `decomp_id P`. -/
 @[simps]
-def decompIdP (P : Karoubi C) : (P.pt : Karoubi C) ⟶ P :=
+def decompId_p (P : Karoubi C) : (P.pt : Karoubi C) ⟶ P :=
   ⟨P.p, by erw [coe_p, id_comp, P.idem]⟩
-#align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompIdP
-
+#align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompId_p
+
+/- warning: category_theory.idempotents.karoubi.decomp_id -> CategoryTheory.Idempotents.Karoubi.decompId is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 P))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P P) (CategoryTheory.CategoryStruct.id.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompIdₓ'. -/
 /-- The formal direct factor of `P.X` given by the idempotent `P.p` in the category `C`
 is actually a direct factor in the category `karoubi C`. -/
-theorem decomp_id (P : Karoubi C) : 𝟙 P = decompIdI P ≫ decompIdP P :=
+theorem decompId (P : Karoubi C) : 𝟙 P = decompId_i P ≫ decompId_p P :=
   by
   ext
   simp only [comp_f, id_eq, P.idem, decomp_id_i, decomp_id_p]
-#align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decomp_id
-
-theorem decomp_p (P : Karoubi C) : (toKaroubi C).map P.p = decompIdP P ≫ decompIdI P :=
+#align category_theory.idempotents.karoubi.decomp_id CategoryTheory.Idempotents.Karoubi.decompId
+
+/- warning: category_theory.idempotents.karoubi.decomp_p -> CategoryTheory.Idempotents.Karoubi.decomp_p is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Functor.map.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 P))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (Prefunctor.map.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.p.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_pₓ'. -/
+theorem decomp_p (P : Karoubi C) : (toKaroubi C).map P.p = decompId_p P ≫ decompId_i P :=
   by
   ext
   simp only [comp_f, decomp_id_p_f, decomp_id_i_f, P.idem, to_karoubi_map_f]
 #align category_theory.idempotents.karoubi.decomp_p CategoryTheory.Idempotents.Karoubi.decomp_p
 
-theorem decompIdI_toKaroubi (X : C) : decompIdI ((toKaroubi C).obj X) = 𝟙 _ :=
+/- warning: category_theory.idempotents.karoubi.decomp_id_i_to_karoubi -> CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubiₓ'. -/
+theorem decompId_i_toKaroubi (X : C) : decompId_i ((toKaroubi C).obj X) = 𝟙 _ :=
   by
   ext
   rfl
-#align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompIdI_toKaroubi
-
-theorem decompIdP_toKaroubi (X : C) : decompIdP ((toKaroubi C).obj X) = 𝟙 _ :=
+#align category_theory.idempotents.karoubi.decomp_id_i_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_i_toKaroubi
+
+/- warning: category_theory.idempotents.karoubi.decomp_id_p_to_karoubi -> CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1) X))))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)))) (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X))) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u1, max u1 u2} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, max u1 u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.toKaroubi.{u1, u2} C _inst_1)) X)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubiₓ'. -/
+theorem decompId_p_toKaroubi (X : C) : decompId_p ((toKaroubi C).obj X) = 𝟙 _ :=
   by
   ext
   rfl
-#align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompIdP_toKaroubi
-
-theorem decompIdI_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
-    f ≫ decompIdI _ = decompIdI _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ :=
+#align category_theory.idempotents.karoubi.decomp_id_p_to_karoubi CategoryTheory.Idempotents.Karoubi.decompId_p_toKaroubi
+
+/- warning: category_theory.idempotents.karoubi.decomp_id_i_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_i_naturality is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P Q ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) f (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) P ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) _a))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.comp_id.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.id_comp.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))))))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P Q (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) f (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) P (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.decompId_i.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (of_eq_true (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.trans.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) True (congrArg.{succ u1, 1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) Prop (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (Eq.trans.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (congrArg.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Category.comp_id.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))) (CategoryTheory.Category.id_comp.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)))) (eq_self.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturalityₓ'. -/
+theorem decompId_i_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
+    f ≫ decompId_i _ = decompId_i _ ≫ ⟨f.f, by erw [comp_id, id_comp]⟩ :=
   by
   ext
   simp only [comp_f, decomp_id_i_f, karoubi.comp_p, karoubi.p_comp]
-#align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompIdI_naturality
-
-theorem decompIdP_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
-    decompIdP P ≫ f =
-      (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.pt : Karoubi C) ⟶ Q.pt) ≫ decompIdP Q :=
+#align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompId_i_naturality
+
+/- warning: category_theory.idempotents.karoubi.decomp_id_p_naturality -> CategoryTheory.Idempotents.Karoubi.decompId_p_naturality is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) Q) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) P Q (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 P) f) (CategoryTheory.CategoryStruct.comp.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) Q (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)) ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) _a))) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.comp_id.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (Eq.mpr.{0} (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.ndrec.{0, succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.CategoryStruct.id.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)) (fun (_a : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) => Eq.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))) (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) _a)) (rfl.{1} Prop (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.p.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f) (CategoryTheory.Category.id_comp.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f)))) (rfl.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 ((fun (a : Type.{u1}) (b : Sort.{max (succ u1) (succ u2)}) [self : HasLiftT.{succ u1, max (succ u1) (succ u2)} a b] => self.0) C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (HasLiftT.mk.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CoeTCₓ.coe.{succ u1, max (succ u1) (succ u2)} C (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.coe.{u1, u2} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u1, u2} C _inst_1 Q))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) P Q), Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) Q) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) P Q (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 P) f) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Idempotents.Karoubi.{u2, u1} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) Q (CategoryTheory.Idempotents.Karoubi.Hom.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Idempotents.Karoubi.mk.{u2, u1} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.coe.proof_1.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (of_eq_true (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.trans.{1} Prop (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) True (congrArg.{succ u1, 1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) Prop (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (Eq.trans.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (congrArg.{succ u1, succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q))) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P))) (CategoryTheory.Category.comp_id.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))) (CategoryTheory.Category.id_comp.{u1, u2} C _inst_1 (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f)))) (eq_self.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u2, u1} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u2, u1} C _inst_1 P Q f))))) (CategoryTheory.Idempotents.Karoubi.decompId_p.{u2, u1} C _inst_1 Q))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturalityₓ'. -/
+theorem decompId_p_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
+    decompId_p P ≫ f =
+      (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.pt : Karoubi C) ⟶ Q.pt) ≫ decompId_p Q :=
   by
   ext
   simp only [comp_f, decomp_id_p_f, karoubi.comp_p, karoubi.p_comp]
-#align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompIdP_naturality
-
+#align category_theory.idempotents.karoubi.decomp_id_p_naturality CategoryTheory.Idempotents.Karoubi.decompId_p_naturality
+
+/- warning: category_theory.idempotents.karoubi.zsmul_hom -> CategoryTheory.Idempotents.Karoubi.zsmul_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (SMul.smul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.CategoryTheory.category.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.Quiver.Hom.addCommGroup.{u1, u2} C _inst_1 _inst_2 P Q)))) n f)) (SMul.smul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.x.{u1, u2} C _inst_1 Q))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] {P : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} {Q : CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1} (n : Int) (f : Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Idempotents.Karoubi.{u1, u2} C _inst_1) (CategoryTheory.Idempotents.Karoubi.instCategoryKaroubi.{u1, u2} C _inst_1))) P Q) (CategoryTheory.Idempotents.instAddCommGroupHomKaroubiToQuiverToCategoryStructInstCategoryKaroubi.{u1, u2} C _inst_1 _inst_2 P Q))))) n f)) (HSMul.hSMul.{0, u2, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (instHSMul.{0, u2} Int (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (SubNegMonoid.SMulInt.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddGroup.toSubNegMonoid.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (AddCommGroup.toAddGroup.{u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)) (CategoryTheory.Preadditive.homGroup.{u2, u1} C _inst_1 _inst_2 (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 P) (CategoryTheory.Idempotents.Karoubi.X.{u1, u2} C _inst_1 Q)))))) n (CategoryTheory.Idempotents.Karoubi.Hom.f.{u1, u2} C _inst_1 P Q f))
+Case conversion may be inaccurate. Consider using '#align category_theory.idempotents.karoubi.zsmul_hom CategoryTheory.Idempotents.Karoubi.zsmul_homₓ'. -/
 @[simp]
 theorem zsmul_hom [Preadditive C] {P Q : Karoubi C} (n : ℤ) (f : P ⟶ Q) : (n • f).f = n • f.f :=
   map_zsmul (inclusionHom P Q) n f
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.karoubi
-! leanprover-community/mathlib commit 88bca0ce5d22ebfd9e73e682e51d60ea13b48347
+! leanprover-community/mathlib commit 200eda15d8ff5669854ff6bcc10aaf37cb70498f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -246,6 +246,17 @@ def toKaroubiIsEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
 #align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubiIsEquivalence
 
+/-- The equivalence `C ≅ karoubi C` when `C` is idempotent complete. -/
+def toKaroubiEquivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
+  haveI := to_karoubi_is_equivalence C
+  functor.as_equivalence (to_karoubi C)
+#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubiEquivalence
+
+instance toKaroubiEquivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
+    (toKaroubiEquivalence C).Functor.Additive :=
+  (inferInstance : (toKaroubi C).Additive)
+#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubiEquivalence_functor_additive
+
 namespace Karoubi
 
 variable {C}
Diff
@@ -51,7 +51,7 @@ one may define a formal direct factor of an object `X : C` : it consists of an i
 type of the objects of the karoubi enveloppe of `C`. It makes sense for any category `C`. -/
 @[nolint has_nonempty_instance]
 structure Karoubi where
-  x : C
+  pt : C
   p : X ⟶ X
   idem : p ≫ p = p
 #align category_theory.idempotents.karoubi CategoryTheory.Idempotents.Karoubi
@@ -63,7 +63,7 @@ variable {C}
 attribute [simp, reassoc.1] idem
 
 @[ext]
-theorem ext {P Q : Karoubi C} (h_X : P.x = Q.x) (h_p : P.p ≫ eqToHom h_X = eqToHom h_X ≫ Q.p) :
+theorem ext {P Q : Karoubi C} (h_X : P.pt = Q.pt) (h_p : P.p ≫ eqToHom h_X = eqToHom h_X ≫ Q.p) :
     P = Q := by
   cases P
   cases Q
@@ -79,7 +79,7 @@ map between the corresponding "formal direct factors" and that it vanishes on th
 formal direct factor. -/
 @[ext]
 structure Hom (P Q : Karoubi C) where
-  f : P.x ⟶ Q.x
+  f : P.pt ⟶ Q.pt
   comm : f = P.p ≫ f ≫ Q.p
 #align category_theory.idempotents.karoubi.hom CategoryTheory.Idempotents.Karoubi.Hom
 
@@ -132,7 +132,7 @@ instance coe : CoeTC C (Karoubi C) :=
 #align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coe
 
 @[simp]
-theorem coe_x (X : C) : (X : Karoubi C).x = X := by rfl
+theorem coe_x (X : C) : (X : Karoubi C).pt = X := by rfl
 #align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_x
 
 @[simp]
@@ -196,7 +196,7 @@ theorem hom_eq_zero_iff [Preadditive C] {P Q : Karoubi C} {f : Hom P Q} : f = 0
 
 /-- The map sending `f : P ⟶ Q` to `f.f : P.X ⟶ Q.X` is additive. -/
 @[simps]
-def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.x ⟶ Q.x)
+def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.pt ⟶ Q.pt)
     where
   toFun f := f.f
   map_zero' := rfl
@@ -252,13 +252,13 @@ variable {C}
 
 /-- The split mono which appears in the factorisation `decomp_id P`. -/
 @[simps]
-def decompIdI (P : Karoubi C) : P ⟶ P.x :=
+def decompIdI (P : Karoubi C) : P ⟶ P.pt :=
   ⟨P.p, by erw [coe_p, comp_id, P.idem]⟩
 #align category_theory.idempotents.karoubi.decomp_id_i CategoryTheory.Idempotents.Karoubi.decompIdI
 
 /-- The split epi which appears in the factorisation `decomp_id P`. -/
 @[simps]
-def decompIdP (P : Karoubi C) : (P.x : Karoubi C) ⟶ P :=
+def decompIdP (P : Karoubi C) : (P.pt : Karoubi C) ⟶ P :=
   ⟨P.p, by erw [coe_p, id_comp, P.idem]⟩
 #align category_theory.idempotents.karoubi.decomp_id_p CategoryTheory.Idempotents.Karoubi.decompIdP
 
@@ -296,7 +296,8 @@ theorem decompIdI_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
 #align category_theory.idempotents.karoubi.decomp_id_i_naturality CategoryTheory.Idempotents.Karoubi.decompIdI_naturality
 
 theorem decompIdP_naturality {P Q : Karoubi C} (f : P ⟶ Q) :
-    decompIdP P ≫ f = (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.x : Karoubi C) ⟶ Q.x) ≫ decompIdP Q :=
+    decompIdP P ≫ f =
+      (⟨f.f, by erw [comp_id, id_comp]⟩ : (P.pt : Karoubi C) ⟶ Q.pt) ≫ decompIdP Q :=
   by
   ext
   simp only [comp_f, decomp_id_p_f, karoubi.comp_p, karoubi.p_comp]

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
@@ -157,7 +157,7 @@ def toKaroubi : C ⥤ Karoubi C where
   map f := ⟨f, by simp only [comp_id, id_comp]⟩
 #align category_theory.idempotents.to_karoubi CategoryTheory.Idempotents.toKaroubi
 
-instance : (toKaroubi C).Full where preimage f := f.f
+instance : (toKaroubi C).Full where map_surjective f := ⟨f.f, rfl⟩
 
 instance : (toKaroubi C).Faithful where
   map_injective := fun h => congr_arg Karoubi.Hom.f h
chore: classify porting notes referring to missing linters (#12098)

Reference the newly created issues #12094 and #12096, as well as the pre-existing #5171. Change all references to #10927 to #5171. Some of these changes were not labelled as "porting note"; change this for good measure.

Diff
@@ -34,7 +34,7 @@ variable (C : Type*) [Category C]
 
 namespace Idempotents
 
--- porting note (#10927): removed @[nolint has_nonempty_instance]
+-- porting note (#5171): removed @[nolint has_nonempty_instance]
 /-- In a preadditive category `C`, when an object `X` decomposes as `X ≅ P ⨿ Q`, one may
 consider `P` as a direct factor of `X` and up to unique isomorphism, it is determined by the
 obvious idempotent `X ⟶ P ⟶ X` which is the projection onto `P` with kernel `Q`. More generally,
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
@@ -157,9 +157,9 @@ def toKaroubi : C ⥤ Karoubi C where
   map f := ⟨f, by simp only [comp_id, id_comp]⟩
 #align category_theory.idempotents.to_karoubi CategoryTheory.Idempotents.toKaroubi
 
-instance : Full (toKaroubi C) where preimage f := f.f
+instance : (toKaroubi C).Full where preimage f := f.f
 
-instance : Faithful (toKaroubi C) where
+instance : (toKaroubi C).Faithful where
   map_injective := fun h => congr_arg Karoubi.Hom.f h
 
 variable {C}
@@ -236,7 +236,7 @@ instance : IsIdempotentComplete (Karoubi C) := by
   use ⟨p.f, by rw [hp, p_comp p]⟩
   simp [hp]
 
-instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
+instance [IsIdempotentComplete C] : (toKaroubi C).EssSurj :=
   ⟨fun P => by
     rcases IsIdempotentComplete.idempotents_split P.X P.p P.idem with ⟨Y, i, e, ⟨h₁, h₂⟩⟩
     use Y
@@ -246,8 +246,8 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
 /-- If `C` is idempotent complete, the functor `toKaroubi : C ⥤ Karoubi C` is an equivalence. -/
-def toKaroubiIsEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
-  Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
+def toKaroubiIsEquivalence [IsIdempotentComplete C] : (toKaroubi C).IsEquivalence :=
+  Functor.IsEquivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
 #align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubiIsEquivalence
 
 /-- The equivalence `C ≅ Karoubi C` when `C` is idempotent complete. -/
refactor: do not allow nsmul and zsmul to default automatically (#6262)

This PR removes the default values for nsmul and zsmul, forcing the user to populate them manually. The previous behavior can be obtained by writing nsmul := nsmulRec and zsmul := zsmulRec, which is now in the docstring for these fields.

The motivation here is to make it more obvious when module diamonds are being introduced, or at least where they might be hiding; you can now simply search for nsmulRec in the source code.

Arguably we should do the same thing for intCast, natCast, pow, and zpow too, but diamonds are less common in those fields, so I'll leave them to a subsequent PR.

Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -164,11 +164,19 @@ instance : Faithful (toKaroubi C) where
 
 variable {C}
 
-@[simps add zero neg]
-instance instAddCommGroupHom [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q) where
-  add f g :=
-    ⟨f.f + g.f, by rw [add_comp, comp_add, ← f.comm, ← g.comm]⟩
+@[simps add]
+instance instAdd [Preadditive C] {P Q : Karoubi C} : Add (P ⟶ Q) where
+  add f g := ⟨f.f + g.f, by rw [add_comp, comp_add, ← f.comm, ← g.comm]⟩
+
+@[simps neg]
+instance instNeg [Preadditive C] {P Q : Karoubi C} : Neg (P ⟶ Q) where
+  neg f := ⟨-f.f, by simpa only [neg_comp, comp_neg, neg_inj] using f.comm⟩
+
+@[simps zero]
+instance instZero [Preadditive C] {P Q : Karoubi C} : Zero (P ⟶ Q) where
   zero := ⟨0, by simp only [comp_zero, zero_comp]⟩
+
+instance instAddCommGroupHom [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q) where
   zero_add f := by
     ext
     apply zero_add
@@ -181,10 +189,11 @@ instance instAddCommGroupHom [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P
   add_comm f g := by
     ext
     apply add_comm
-  neg f := ⟨-f.f, by simpa only [neg_comp, comp_neg, neg_inj] using f.comm⟩
   add_left_neg f := by
     ext
     apply add_left_neg
+  zsmul := zsmulRec
+  nsmul := nsmulRec
 
 namespace Karoubi
 
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -112,7 +112,7 @@ theorem hom_ext_iff {P Q : Karoubi C} {f g : P ⟶ Q} : f = g ↔ f.f = g.f := b
   · apply Hom.ext
 #align category_theory.idempotents.karoubi.hom_ext CategoryTheory.Idempotents.Karoubi.hom_ext_iff
 
--- porting note: added because `Hom.ext` is not triggered automatically
+-- Porting note: added because `Hom.ext` is not triggered automatically
 @[ext]
 theorem hom_ext {P Q : Karoubi C} (f g : P ⟶ Q) (h : f.f = g.f) : f = g := by
   simpa [hom_ext_iff] using h
@@ -131,7 +131,7 @@ instance coe : CoeTC C (Karoubi C) :=
   ⟨fun X => ⟨X, 𝟙 X, by rw [comp_id]⟩⟩
 #align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coe
 
--- porting note: removed @[simp] as the linter complains
+-- Porting note: removed @[simp] as the linter complains
 theorem coe_X (X : C) : (X : Karoubi C).X = X := rfl
 set_option linter.uppercaseLean3 false in
 #align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_X
chore: classify removed @[nolint has_nonempty_instance] porting notes (#10929)

Classifies by adding issue number (#10927) to porting notes claiming removed @[nolint has_nonempty_instance].

Diff
@@ -34,7 +34,7 @@ variable (C : Type*) [Category C]
 
 namespace Idempotents
 
--- porting note: removed @[nolint has_nonempty_instance]
+-- porting note (#10927): removed @[nolint has_nonempty_instance]
 /-- In a preadditive category `C`, when an object `X` decomposes as `X ≅ P ⨿ Q`, one may
 consider `P` as a direct factor of `X` and up to unique isomorphism, it is determined by the
 obvious idempotent `X ⟶ P ⟶ X` which is the projection onto `P` with kernel `Q`. More generally,
chore: simplify by rfl (#7039)

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

Diff
@@ -118,11 +118,11 @@ theorem hom_ext {P Q : Karoubi C} (f g : P ⟶ Q) (h : f.f = g.f) : f = g := by
   simpa [hom_ext_iff] using h
 
 @[simp]
-theorem comp_f {P Q R : Karoubi C} (f : P ⟶ Q) (g : Q ⟶ R) : (f ≫ g).f = f.f ≫ g.f := by rfl
+theorem comp_f {P Q R : Karoubi C} (f : P ⟶ Q) (g : Q ⟶ R) : (f ≫ g).f = f.f ≫ g.f := rfl
 #align category_theory.idempotents.karoubi.comp_f CategoryTheory.Idempotents.Karoubi.comp_f
 
 @[simp]
-theorem id_eq {P : Karoubi C} : 𝟙 P = ⟨P.p, by repeat' rw [P.idem]⟩ := by rfl
+theorem id_eq {P : Karoubi C} : 𝟙 P = ⟨P.p, by repeat' rw [P.idem]⟩ := rfl
 #align category_theory.idempotents.karoubi.id_eq CategoryTheory.Idempotents.Karoubi.id_eq
 
 /-- It is possible to coerce an object of `C` into an object of `Karoubi C`.
@@ -132,12 +132,12 @@ instance coe : CoeTC C (Karoubi C) :=
 #align category_theory.idempotents.karoubi.coe CategoryTheory.Idempotents.Karoubi.coe
 
 -- porting note: removed @[simp] as the linter complains
-theorem coe_X (X : C) : (X : Karoubi C).X = X := by rfl
+theorem coe_X (X : C) : (X : Karoubi C).X = X := rfl
 set_option linter.uppercaseLean3 false in
 #align category_theory.idempotents.karoubi.coe_X CategoryTheory.Idempotents.Karoubi.coe_X
 
 @[simp]
-theorem coe_p (X : C) : (X : Karoubi C).p = 𝟙 X := by rfl
+theorem coe_p (X : C) : (X : Karoubi C).p = 𝟙 X := rfl
 #align category_theory.idempotents.karoubi.coe_p CategoryTheory.Idempotents.Karoubi.coe_p
 
 @[simp]
feat: forward port of Mathlib.AlgebraicTopology.DoldKan.Equivalence (#6444)

In this PR (which is a forward port of https://github.com/leanprover-community/mathlib/pull/17926), the Dold-Kan equivalence between simplicial objects and chain complexes in abelian categories is constructed.

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

Diff
@@ -19,7 +19,7 @@ In this file, we define the Karoubi envelope `Karoubi C` of a category `C`.
 - `Karoubi C` is the Karoubi envelope of a category `C`: it is an idempotent
 complete category. It is also preadditive when `C` is preadditive.
 - `toKaroubi C : C ⥤ Karoubi C` is a fully faithful functor, which is an equivalence
-(`toKaroubi_isEquivalence`) when `C` is idempotent complete.
+(`toKaroubiIsEquivalence`) when `C` is idempotent complete.
 
 -/
 
@@ -237,20 +237,20 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
 /-- If `C` is idempotent complete, the functor `toKaroubi : C ⥤ Karoubi C` is an equivalence. -/
-def toKaroubi_isEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
+def toKaroubiIsEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
-#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalence
+#align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubiIsEquivalence
 
 /-- The equivalence `C ≅ Karoubi C` when `C` is idempotent complete. -/
-def toKaroubi_equivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
-  haveI := toKaroubi_isEquivalence C
+def toKaroubiEquivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
+  haveI := toKaroubiIsEquivalence C
   Functor.asEquivalence (toKaroubi C)
-#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubi_equivalence
+#align category_theory.idempotents.to_karoubi_equivalence CategoryTheory.Idempotents.toKaroubiEquivalence
 
-instance toKaroubi_equivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
-    (toKaroubi_equivalence C).functor.Additive :=
+instance toKaroubiEquivalence_functor_additive [Preadditive C] [IsIdempotentComplete C] :
+    (toKaroubiEquivalence C).functor.Additive :=
   (inferInstance : (toKaroubi C).Additive)
-#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubi_equivalence_functor_additive
+#align category_theory.idempotents.to_karoubi_equivalence_functor_additive CategoryTheory.Idempotents.toKaroubiEquivalence_functor_additive
 
 namespace Karoubi
 
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
@@ -30,7 +30,7 @@ open CategoryTheory.Category CategoryTheory.Preadditive CategoryTheory.Limits Bi
 
 namespace CategoryTheory
 
-variable (C : Type _) [Category C]
+variable (C : Type*) [Category C]
 
 namespace Idempotents
 
@@ -201,7 +201,7 @@ def inclusionHom [Preadditive C] (P Q : Karoubi C) : AddMonoidHom (P ⟶ Q) (P.X
 #align category_theory.idempotents.karoubi.inclusion_hom CategoryTheory.Idempotents.Karoubi.inclusionHom
 
 @[simp]
-theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type _} (s : Finset α) (f : α → (P ⟶ Q)) :
+theorem sum_hom [Preadditive C] {P Q : Karoubi C} {α : Type*} (s : Finset α) (f : α → (P ⟶ Q)) :
     (∑ x in s, f x).f = ∑ x in s, (f x).f :=
   map_sum (inclusionHom P Q) f s
 #align category_theory.idempotents.karoubi.sum_hom CategoryTheory.Idempotents.Karoubi.sum_hom
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,16 +2,13 @@
 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.karoubi
-! leanprover-community/mathlib commit 200eda15d8ff5669854ff6bcc10aaf37cb70498f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Idempotents.Basic
 import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
 import Mathlib.CategoryTheory.Equivalence
 
+#align_import category_theory.idempotents.karoubi from "leanprover-community/mathlib"@"200eda15d8ff5669854ff6bcc10aaf37cb70498f"
+
 /-!
 # The Karoubi envelope of a category
 
chore: review of automation in category theory (#4793)

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

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

Diff
@@ -50,7 +50,7 @@ structure Karoubi where
   /-- an endomorphism of the object -/
   p : X ⟶ X
   /-- the condition that the given endomorphism is an idempotent -/
-  idem : p ≫ p = p
+  idem : p ≫ p = p := by aesop_cat
 #align category_theory.idempotents.karoubi CategoryTheory.Idempotents.Karoubi
 
 namespace Karoubi
@@ -78,7 +78,7 @@ structure Hom (P Q : Karoubi C) where
   /-- a morphism between the underlying objects -/
   f : P.X ⟶ Q.X
   /-- compatibility of the given morphism with the given idempotents -/
-  comm : f = P.p ≫ f ≫ Q.p
+  comm : f = P.p ≫ f ≫ Q.p := by aesop_cat
 #align category_theory.idempotents.karoubi.hom CategoryTheory.Idempotents.Karoubi.Hom
 
 instance [Preadditive C] (P Q : Karoubi C) : Inhabited (Hom P Q) :=
@@ -93,7 +93,6 @@ theorem comp_p {P Q : Karoubi C} (f : Hom P Q) : f.f ≫ Q.p = f.f := by
   rw [f.comm, assoc, assoc, Q.idem]
 #align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_p
 
-
 @[reassoc]
 theorem p_comm {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f ≫ Q.p := by rw [p_comp, comp_p]
 #align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_comm
@@ -215,16 +214,6 @@ end Karoubi
 /-- The category `Karoubi C` is preadditive if `C` is. -/
 instance [Preadditive C] : Preadditive (Karoubi C) where
   homGroup P Q := by infer_instance
-  add_comp := by
-    intros
-    ext
-    dsimp
-    simp
-  comp_add := by
-    intros
-    ext
-    dsimp
-    simp
 
 instance [Preadditive C] : Functor.Additive (toKaroubi C) where
 
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -43,7 +43,7 @@ consider `P` as a direct factor of `X` and up to unique isomorphism, it is deter
 obvious idempotent `X ⟶ P ⟶ X` which is the projection onto `P` with kernel `Q`. More generally,
 one may define a formal direct factor of an object `X : C` : it consists of an idempotent
 `p : X ⟶ X` which is thought as the "formal image" of `p`. The type `Karoubi C` shall be the
-type of the objects of the karoubi enveloppe of `C`. It makes sense for any category `C`. -/
+type of the objects of the karoubi envelope of `C`. It makes sense for any category `C`. -/
 structure Karoubi where
   /-- an object of the underlying category -/
   X : C
feat: port CategoryTheory.Idempotents.Biproducts (#3926)
Diff
@@ -169,7 +169,7 @@ instance : Faithful (toKaroubi C) where
 variable {C}
 
 @[simps add zero neg]
-instance [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q) where
+instance instAddCommGroupHom [Preadditive C] {P Q : Karoubi C} : AddCommGroup (P ⟶ Q) where
   add f g :=
     ⟨f.f + g.f, by rw [add_comp, comp_add, ← f.comm, ← g.comm]⟩
   zero := ⟨0, by simp only [comp_zero, zero_comp]⟩
@@ -284,6 +284,7 @@ def decompId_p (P : Karoubi C) : (P.X : Karoubi C) ⟶ P :=
 
 /-- The formal direct factor of `P.X` given by the idempotent `P.p` in the category `C`
 is actually a direct factor in the category `Karoubi C`. -/
+@[reassoc]
 theorem decompId (P : Karoubi C) : 𝟙 P = decompId_i P ≫ decompId_p P := by
   ext
   simp only [comp_f, id_eq, P.idem, decompId_i, decompId_p]
chore: tidy various files (#3408)
Diff
@@ -21,7 +21,7 @@ In this file, we define the Karoubi envelope `Karoubi C` of a category `C`.
 
 - `Karoubi C` is the Karoubi envelope of a category `C`: it is an idempotent
 complete category. It is also preadditive when `C` is preadditive.
-- `toKaroubi C : C ⥤ karoubi C` is a fully faithful functor, which is an equivalence
+- `toKaroubi C : C ⥤ Karoubi C` is a fully faithful functor, which is an equivalence
 (`toKaroubi_isEquivalence`) when `C` is idempotent complete.
 
 -/
@@ -29,13 +29,7 @@ complete category. It is also preadditive when `C` is preadditive.
 
 noncomputable section
 
-open CategoryTheory.Category
-
-open CategoryTheory.Preadditive
-
-open CategoryTheory.Limits
-
-open BigOperators
+open CategoryTheory.Category CategoryTheory.Preadditive CategoryTheory.Limits BigOperators
 
 namespace CategoryTheory
 
@@ -256,12 +250,12 @@ instance [IsIdempotentComplete C] : EssSurj (toKaroubi C) :=
         { hom := ⟨i, by erw [id_comp, ← h₂, ← assoc, h₁, id_comp]⟩
           inv := ⟨e, by erw [comp_id, ← h₂, assoc, h₁, comp_id]⟩ }⟩
 
-/-- If `C` is idempotent complete, the functor `toKaroubi : C ⥤ karoubi C` is an equivalence. -/
+/-- If `C` is idempotent complete, the functor `toKaroubi : C ⥤ Karoubi C` is an equivalence. -/
 def toKaroubi_isEquivalence [IsIdempotentComplete C] : IsEquivalence (toKaroubi C) :=
   Equivalence.ofFullyFaithfullyEssSurj (toKaroubi C)
 #align category_theory.idempotents.to_karoubi_is_equivalence CategoryTheory.Idempotents.toKaroubi_isEquivalence
 
-/-- The equivalence `C ≅ karoubi C` when `C` is idempotent complete. -/
+/-- The equivalence `C ≅ Karoubi C` when `C` is idempotent complete. -/
 def toKaroubi_equivalence [IsIdempotentComplete C] : C ≌ Karoubi C :=
   haveI := toKaroubi_isEquivalence C
   Functor.asEquivalence (toKaroubi C)
feat: port CategoryTheory.Idempotents.FunctorCategories (#3301)

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

Diff
@@ -99,6 +99,8 @@ theorem comp_p {P Q : Karoubi C} (f : Hom P Q) : f.f ≫ Q.p = f.f := by
   rw [f.comm, assoc, assoc, Q.idem]
 #align category_theory.idempotents.karoubi.comp_p CategoryTheory.Idempotents.Karoubi.comp_p
 
+
+@[reassoc]
 theorem p_comm {P Q : Karoubi C} (f : Hom P Q) : P.p ≫ f.f = f.f ≫ Q.p := by rw [p_comp, comp_p]
 #align category_theory.idempotents.karoubi.p_comm CategoryTheory.Idempotents.Karoubi.p_comm
 
feat: port CategoryTheory.Idempotents.Karoubi (#3291)

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

Dependencies 3 + 315

316 files ported (99.1%)
125749 lines ported (99.2%)
Show graph

The unported dependencies are